Krzysztof Świstek

Krzysztof Świstek Programista,
Informatyk, Analityk

Temat: Hibernate - problem z konfiguracją c3p0

Witam, mam problem z Hibernate. Mianowicie po uruchomieniu aplikacji wszystko pięknie działa, ale tylko przez 8 godzin. Po upływie tego czasu połączenie z bazą zostaje zatrzymane i zęby ruszyło na nowo muszę restartować tomcata. Domyślam się że jest to problem z konfiguracją puli połączeń. Według informacji z netu za prawidłowe działanie połączeń odpowiadają 4 parametry:

minPoolSize,
maxPoolSize,
acquireIncrement,
idleConnectionTestPeriod,

Mam je wszystkie ustawione, ale nadal się wykłada po 8 godzinach bezczynności...
Czy ktoś z Was wie w czym jest problem?
Piotr Stawiński

Piotr Stawiński
projektant/programis
ta, Narodowy Bank
Polski

Temat: Hibernate - problem z konfiguracją c3p0

Cześć
Zaglądałeś do logów serwera?
Krzysztof Świstek

Krzysztof Świstek Programista,
Informatyk, Analityk

Temat: Hibernate - problem z konfiguracją c3p0

Tak, ale nic konkretnego tam nie ma.

konto usunięte

Temat: Hibernate - problem z konfiguracją c3p0

Możliwe że nie zwalniasz połączeń.
Spring zwalnia automatycznie przy wyjściu z transakcji, dlatego lepiej ustawić allowCreate na false w HibernateTemplate żeby mieć pewność że hibernate nie jest używany poza zasięgiem transakcji.
Krzysztof K.

Krzysztof K. Experienced Software
Engineer

Temat: Hibernate - problem z konfiguracją c3p0

Jakiej implementacji puli uzywasz? Apache DBCP?
Krzysztof Świstek

Krzysztof Świstek Programista,
Informatyk, Analityk

Temat: Hibernate - problem z konfiguracją c3p0

Nie, tylko C3P0. Wydaje mi się ze zamieszczenie w konfigu wpisów z tej puli, powoduje jej automatycznie wybranie. Poniżej przedstawiam fragment mojego konfiga, odpowiedzialny za ten właśnie fakt:

<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
Piotr Wierzbowski

Piotr Wierzbowski IT Architect, Asseco
Poland S.A.

Temat: Hibernate - problem z konfiguracją c3p0

Łukasz Lech:
Możliwe że nie zwalniasz połączeń.

Też tak myślę, połączenia trzeba zwracać do puli, raz zapomnisz i aplikacja się po jakimś czasie wywali. W linuksie łatwo to sprawdzić przez ps -fA.
Dobrze jest otwierać i zamykać w tej samej funkcji, Springowe hibernateTemplate to dobry pomysł.
Krzysztof Świstek

Krzysztof Świstek Programista,
Informatyk, Analityk

Temat: Hibernate - problem z konfiguracją c3p0

A jesli nie uzywam Springa, tylko zwykłych hibernatowych narzędzi? Gdzie mogę wówczas wykorzystać hibernateTemplate?
Łukasz Żuchowski

Łukasz Żuchowski Software Wizard

Temat: Hibernate - problem z konfiguracją c3p0

Krzysztof Świstek:
Nie, tylko C3P0. Wydaje mi się ze zamieszczenie w konfigu wpisów z tej puli, powoduje jej automatycznie wybranie. Poniżej przedstawiam fragment mojego konfiga, odpowiedzialny za ten właśnie fakt:

<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property
> name="hibernate.c3p0.max_statements">50</property>
<property
> name="hibernate.c3p0.idle_test_period">3000</property>

Może wklej cały konfig (z wyjątkiem encji) a będzie można coś więcej powiedzieć.
Zakładam że czytałeś: https://www.hibernate.org/214.html
Piotr Wierzbowski

Piotr Wierzbowski IT Architect, Asseco
Poland S.A.

Temat: Hibernate - problem z konfiguracją c3p0

Krzysztof Świstek:
A jesli nie uzywam Springa, tylko zwykłych hibernatowych narzędzi? Gdzie mogę wówczas wykorzystać hibernateTemplate?
Mozna sobie napisac swojego HibernateTemplate, chodzi o to żeby napisac metode execute, która przyjmie jako argument callback do wykonania, a sama zajmie sie otworzeniem i zamknięciem połaczenia, tak żebys o tym pamiętac nie musiał. Spring to fajny zlepek prostych użytków i wzorców, ot i wielka filozofia: http://kickjava.com/src/org/springframework/orm/hibern... :]
Krzysztof Świstek

Krzysztof Świstek Programista,
Informatyk, Analityk

Temat: Hibernate - problem z konfiguracją c3p0

Dziękuje wszystkim za rady :) Już działa, problem wynikał z błędnych wpisów w pliku konfiguracyjnym. Skopiowałem konfiga bezpośrednio ze strony hibernate i jest ok.Krzysztof Świstek edytował(a) ten post dnia 29.05.09 o godzinie 20:46

Następna dyskusja:

Hibernate - Problem z utwor...




Wyślij zaproszenie do