Mysql
 sql >> Base de données >  >> RDS >> Mysql

Problème de connexion à MySQL Hibernate lors de l'utilisation de c3p0

testWhileIdle n'est pas une propriété c3p0. Cela ne fait rien de mal, mais peut vous amener à penser que vous faites quelque chose que vous ne faites pas. Vous testez les connexions inactives, probablement beaucoup trop fréquemment, puisque vous testez également les connexions lors du paiement.

Votre configuration est étalée sur deux endroits. Je ne sais pas comment les configurations Spring et Hibernate vont interagir. c3p0 DataSources dump config à INFO sur pool init. Vous voudrez peut-être vérifier que vous disposez de la configuration attendue.

Concernant votre problème, cela ressemble beaucoup à une fuite de connexion. Vous devez vous assurer que toute connexion extraite d'une source de données est close() de manière fiable dans une méthode finally ou via try-with-resources dans Java 7+.

Utilisez les paramètres de configuration c3p0 unreturnedConnectionTimeout et debugUnreturnedConnectionStackTraces pour déboguer une fuite de connexion.

Voir ici .

(Remarque :dans hibernate.cfg, ce serait hibernate.c3p0.unreturnedConnectionTimeout et hibernate.c3p0.debugUnreturnedConnectionStackTraces . Ou vous pouvez les définir plus directement dans votre Spring xml.)