Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę zapobiec tworzeniu dużej liczby połączeń uśpionych przez Hibernate + c3p0 + MySql?

Podczas korzystania z puli połączeń, wywoływanie Connection#close() nie zamyka fizycznie połączenia, ale zwraca je do puli w celu ponownego wykorzystania w przyszłości. Innymi słowy, połączenie pozostaje otwarte i to jest cały sens korzystania z puli.

Cóż, to jest problem. Tworzysz SessionFactory w kółko (każdy tworzy własną pulę), podczas gdy powinieneś ją utworzyć tylko raz przez cały okres użytkowania aplikacji. Jeśli nie używasz żadnego konkretnego frameworka, zwykle robi się to w jakiejś klasie narzędziowej (słynny HibernateUtil klasa).

Oficjalny przewodnik dotyczący hibernacji ma bardzo prosty przykład takiej klasy. Lub zobacz ten co jest nieco bogatsze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz wiersz nadrzędny tylko wtedy, gdy nie ma w nim dzieci

  2. Parametr MyBatis z HashMap

  3. mysql- Jak aplikować dotacje do kolumny?

  4. Jak porównać dane wejściowe z danymi mysql z php/sql?

  5. Łączenie rekordów w jednej kolumnie bez zapętlania?