testWhileIdle
non è una proprietà c3p0. Non fa male a nulla, ma potrebbe confonderti nel pensare che stai facendo qualcosa che non stai facendo. Stai testando connessioni inattive, probabilmente con troppa frequenza, dal momento che stai testando connessioni anche al momento del pagamento.
La tua configurazione è distribuita su due punti. Non sono sicuro di come interagiranno le configurazioni Spring e Hibernate. c3p0 DataSources dump config in INFO su pool init. Potresti voler verificare di avere la configurazione che ti aspetti.
Per quanto riguarda il tuo problema, sembra che tu abbia una perdita di connessione. Devi assicurarti che qualsiasi connessione estratta da un DataSource sia chiusa() in modo affidabile in un metodo definitivo o tramite try-with-resources in Java 7+.
Usa i parametri di configurazione c3p0 unreturnedConnectionTimeout
e debugUnreturnedConnectionStackTraces
per eseguire il debug di una perdita di connessione.
Vedi qui .
(Nota:in hibernate.cfg sarebbero hibernate.c3p0.unreturnedConnectionTimeout
e hibernate.c3p0.debugUnreturnedConnectionStackTraces
. Oppure puoi impostarli più direttamente nel tuo XML Spring.)