testWhileIdle
is geen c3p0-eigenschap. Het doet geen pijn, maar kan je in de war brengen door te denken dat je iets doet wat je niet doet. Je test inactieve verbindingen, waarschijnlijk veel te vaak, omdat je ook verbindingen test bij het afrekenen.
Je configuratie is verspreid over twee plaatsen. Ik weet niet zeker hoe de configuraties van de lente en de slaapstand met elkaar zullen samenwerken. c3p0 DataSources dump config bij INFO op pool init. Misschien wil je controleren of je de configuratie hebt die je verwacht.
Wat uw probleem betreft, het klinkt heel erg alsof u een verbindingslek heeft. U moet ervoor zorgen dat elke verbinding die is uitgecheckt bij een gegevensbron, op betrouwbare wijze wordt afgesloten() in een definitieve methode, of via try-with-resources in Java 7+.
Gebruik c3p0-configuratieparameters unreturnedConnectionTimeout
en debugUnreturnedConnectionStackTraces
om een verbindingslek te debuggen.
Zie hier .
(Opmerking:in hibernate.cfg zijn dit hibernate.c3p0.unreturnedConnectionTimeout
en hibernate.c3p0.debugUnreturnedConnectionStackTraces
. Of je kunt ze directer instellen in je Spring XML.)