Przeszedłem przez wiele rozwiązań i mój problem został rozwiązany, ale po pewnym czasie połączenie zostało przerwane lub rozłączone. Po 2 3 dniach otrzymałem rozwiązanie, które rozwiązuje mój problem.
wiele rozwiązań sugeruje użycie autoReconnect = true, ale kiedy przejrzałem dokumentację. Widziałem następujący tekst źródła opisujące parametr autoReconnect:
Korzystanie z tej funkcji nie jest zalecane, ponieważ ma skutków ubocznych związanych z stanu sesji i spójności danych
Kiedy spojrzałem w kodzie hibernacji. Podstawowy mechanizm połączenia Hibernate nie obsługuje ponownego łączenia, należy użyć puli połączeń H3C0 (która sama nie zawsze obsługuje ponowne łączenie).
Jednak raz używane H3C0, domyślnym zachowaniem wydaje się być przetwarzanie żądania, jeśli połączenie jest martwe, to użytkownik widzi i błąd - ale przynajmniej ponownie łączy się dla następnego żądania. Przypuszczam, że jeden błąd jest lepszy niż nieskończone błędy, ale nadal nie jest tak dobry, jak błędy zerowe. Okazuje się, że potrzebna jest opcjatestConnectionOnCheckout - której dokumentacja nie zaleca, ponieważ przetestowanie połączenia przed żądaniem może doprowadzić do obniżenia wydajności. Z pewnością oprogramowanie musi najpierw działać, a po drugie musi działać szybko.
Tak więc, aby podsumować, aby uzyskać połączenie z „praca” (które określają, jak w tym obsługa połączeń spadły o ponownym bez błędu): W „hibernate.cfg.xml”:
<!-- hibernate.cfg.xml -->
<property name="c3p0.min_size">5</property>
<property name="c3p0.max_size">20</property>
<property name="c3p0.timeout">1800</property>
<property name="c3p0.max_statements">50</property>
<!-- no "connection.pool_size" entry! -->
Następnie należy utworzyć plik „c3p0.properties”, który musi znajdować się w katalogu głównym na ścieżce klasy (czyli w żaden sposób zastąpić go na poszczególne części wniosku):
c3p0.properties
C3P0.testConnectionOnCheckout = true
Jeśli to rozwiązanie nie działa, niż istnieje więcej możliwych rozwiązań: -
1. Add
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
Also dont forget to place the c3p0-0.9.1.jar in the classpath.
2. Instead of using that c3p0.properties file, couldn't you just use this property in your hibernate.cfg.xml:
<property name="hibernate.c3p0.validate">true</property>
Also checkout the last post on this page:
https://forum.hibernate.org/viewtopic.php?p=2399313
If all these not work than go [more][1] and read in detail
[1]: http://hibernatedb.blogspot.in/2009/05/automatic-reconnect-from-hibernate-to.html
Proszę o pomoc https://stackoverflow.com/questions/47011116/the-last-packet-sent- pomyślnie-do-serwera-był-70-400-003-milliseconds-ag – Tony