testWhileIdle
nie jest własnością c3p0. Niczego to nie boli, ale może wprowadzić cię w błąd i pomyśleć, że robisz coś, czym nie jesteś. Testujesz bezczynne połączenia, prawdopodobnie zbyt często, ponieważ testujesz również połączenia przy kasie.
Twoja konfiguracja jest rozłożona w dwóch miejscach. Nie jestem pewien, w jaki sposób konfiguracje Spring i hibernate będą współdziałać. c3p0 DataSources zrzutu konfiguracji w INFO podczas inicjowania puli. Możesz sprawdzić, czy masz oczekiwaną konfigurację.
Jeśli chodzi o Twój problem, brzmi to bardzo podobnie do wycieku połączenia. Musisz upewnić się, że każde połączenie wyewidencjonowane z DataSource jest niezawodnie zamykane w metodzie Final lub przez try-with-resources w Javie 7+.
Użyj parametrów konfiguracyjnych c3p0 unreturnedConnectionTimeout
i debugUnreturnedConnectionStackTraces
debugowania wycieku połączenia.
Zobacz tutaj .
(Uwaga:w hibernate.cfg byłyby to hibernate.c3p0.unreturnedConnectionTimeout
i hibernate.c3p0.debugUnreturnedConnectionStackTraces
. Możesz też ustawić je bardziej bezpośrednio w pliku Spring xml.)