J'ai migré l'application Spring Boot vers la version 2.0 et j'ai découvert quelques problèmes liés au pool de connexions hikari. Lorsque je récupère des données de base de données, le résultat est hikari cp timeout. la connexion n'est pas disponible. Je ne sais pas pourquoi, dans la version précédente, cela a fonctionné correctement.
J'ai donc essayé d'utiliser le pool Tomcat avec cette configuration dans application.yml
, mais cela n'a pas fonctionné (avec un formatage YAML correct).
spring.datasource.type=org.Apache.Tomcat.jdbc.pool.DataSource
Mon pom.xml a ces dépendances liées aux choses de la base de données:
spring-boot-jpa
spring-boot-jdbc
jdbc7
Comment exclure hikari et utiliser le pool de connexions Tomcat?
J'ai trouvé la solution… .. Cela peut être résolu dans pom.xml en modifiant comme suit:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.Apache.Tomcat</groupId>
<artifactId>Tomcat-jdbc</artifactId>
</dependency>
Cependant, le problème de hikari était probablement dû à la petite taille par défaut du pool de connexion. Donc, ce problème pourrait être résolu aussi avec ce changement mais pas vérifié par moi-même. Notez juste pour les autres. Quelque chose comme ca:
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.maximum-pool-size=5
Également:
spring:
datasource:
type: org.Apache.Tomcat.jdbc.pool.DataSource
marche avec
<dependency>
<groupId>org.Apache.Tomcat</groupId>
<artifactId>Tomcat-jdbc</artifactId>
</dependency>