Rozwiązanie problemu jest banalne ale dość ciężkie do znalezienia. Kluczowe jest ustawienie właściwości hibernate.connection.release_mode na auto.
niedziela, 15 lutego 2009
Hibernate i zbyt dużo połączeń
Zupełnie przez przypadek przy przesiadce z C3P0 na DBCP (swoją drogą dlaczego ComboPooledDataSource z C3P0 jest klasą final?) zauważyłem, że w ogromnym tempie przybywa połączeń z bazą. Ogromnym tzn. zazwyczaj 1 nowe połączenie na każdy request. Zachowanie to prowadzi błyskawicznie do wyczerpania puli (pool exhaust).
Subskrybuj:
Komentarze do posta (Atom)
2 komentarze:
Witam, spotkalem sie z byt duza liczba polaczen podczas pracy na serwerze tomcat z aplikacja (hibernate + spring) ale dopiero ustawienie hibernate.connection.release_mode=after_statement pomoglo, dla auto niestety nie dzialalo, byc moze zle konfiguruje zarzadzanie zrodlem danych przez springa?
Sprawdziłem i faktycznie auto działa dobrze w przypadku DBCP natomiast C3P0 w dalszym ciągu nawiązuje dużą liczbę połączeń.
Prześlij komentarz