testWhileIdle
är inte en c3p0-egenskap. Det gör inte ont, men kan förvirra dig till att tro att du gör något som du inte gör. Du testar lediga anslutningar, förmodligen alldeles för ofta, eftersom du också testar anslutningar vid kassan.
Din konfiguration är spridd över två ställen. Jag är osäker på hur vår- och vilolägeskonfigurationerna kommer att interagera. c3p0 DataSources dump config vid INFO på pool init. Du kanske vill verifiera att du har den konfiguration du förväntar dig.
Angående ditt problem, det låter väldigt mycket som att du har en anslutningsläcka. Du måste se till att alla anslutningar som checkas ut från en datakälla stängs() på ett tillförlitligt sätt i en finally-metod eller via prova-med-resurser i Java 7+.
Använd c3p0 config params unreturnedConnectionTimeout
och debugUnreturnedConnectionStackTraces
för att felsöka en anslutningsläcka.
Se här .
(Obs! I hibernate.cfg skulle de vara hibernate.c3p0.unreturnedConnectionTimeout
och hibernate.c3p0.debugUnreturnedConnectionStackTraces
. Eller så kan du ställa in dem mer direkt i din Spring xml.)