2012-08-03 12 views
6

Pracuję nad naprawieniem problemów z przekroczeniem czasu połączenia dla projektu, nad którym pracuję. używamy c3p0 do zarządzania pulą połączeń i hibernacji jako narzędzie orm. używamy również sprężyny.debugowanie utraty połączeń przy użyciu "debugUnreturnedConnectionStackTraces"

Aby sprawdzić, czy istnieją niezwrócone połączenia, ustawiłem debugUnreturnedConnectionStackTraces na true w mojej konfiguracji c3p0 (NIE w właściwościach c3p0).

Czy jest coś jeszcze, co muszę zrobić. Czy muszę też dodać coś do mojej właściwości lod4j.properties, czy wystarczy ustawić wartość debugUnreturnedConnectionStackTraces na wartość true?

Czy powinienem również ustawić właściwość debugUnreturnedConnectionStackTraces na wartość true w właściwościach c3p0?

Dzięki za pomoc

Odpowiedz

3

Osobiście zwykle dodać oba następujące 2 linie do mojego hibernate.cfg.xml

<property name="hibernate.c3p0.unreturnedConnectionTimeout">60</property> 
<property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property> 

wierzę domyślna wartość limitu czasu jest na 0 i jestem nie wiem, jak to ma działać.

+0

dziękuję Scott. Ale czy wystarczy, że ustawimy "debugUnreturnedConnectionStackTraces" na true, czy też powinienem również dokonać anychanges do mojego log4j.properties również. i gdzie "debugUnreturnedConnectionStackTraces" rejestrować ślady stosu. Czy zaloguje się do logów serwera aplikacji? – Npa

+0

Nie używam log4j, ale oczekiwałbym, że będziesz musiał włączyć poziom dziennika, aby debugować. I tak, powinien znaleźć się w dzienniku serwera aplikacji. –

10

Rozszerzając trochę na Coreya odpowiedź:

Jeśli unreturnedConnectionTimeout jest dodatni i debugUnreturnedConnectionStackTraces ma wartość true, wówczas ślady stosu że generowanych niezwróconych Wyjątki będą rejestrowane na poziomie INFO przez rejestrator „com.mchange.v2. resourcepool.BasicResourcePool ".

Często ludzie rejestrują wszystko powyżej poziomu INFO ze wszystkich rejestratorów, więc te ślady stosu pojawiają się tylko w dziennikach. Ale jeśli ich nie widzisz, sprawdź konfigurację rejestrowania, aby upewnić się, że komunikaty INFO z tego programu nie są filtrowane.

Należy zauważyć, że debugUnreturnedConnectionStackTraces nie zrobi nic, jeśli unrecendedConnectionTimeout nie jest również ustawiony.

Zobacz

http://www.mchange.com/projects/c3p0/#unreturnedConnectionTimeout

http://www.mchange.com/projects/c3p0/#debugUnreturnedConnectionStackTraces

Mam nadzieję, że to pomoże!

p.s. nie ma znaczenia, jak ustawić te właściwości, o ile są one prawidłowo ustawione. konfiguracje pul zrzutu c3p0 w INFO przy inicjalizacji puli; sprawdź swoje dzienniki, aby upewnić się, że mimo próby ustawienia parametrów masz oczekiwaną konfigurację. Alternatywnie możesz użyć JMX do sprawdzenia parametrów.

Powiązane problemy