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

Aplikacja Spring traci połączenie z MySQL po 8 godzinach. Jak poprawnie skonfigurować?

Krótka odpowiedź brzmi:powinno wystarczyć. DBCP obsługuje testowanie połączenia przy pożyczaniu z puli połączeń (domyślnie), ale obsługuje również testowanie przy powrocie i testowanie w stanie bezczynności.

Warto też zrozumieć, co może być tutaj nie tak. Wygląda na to, że coś między serwerem Tomcat a bazą danych zrywa bezczynne połączenie po przekroczeniu limitu czasu (np. router lub zapora). Problem polega na tym, że Tomcat myśli, że nadal ma prawidłowe połączenie, próbuje wykonać trochę pracy z połączeniem i kończy się niepowodzeniem, ale utrzymuje połączenie i zwraca je do puli. Teraz każda kolejna próba nawiązania komunikacji z bazą danych zakończy się niepowodzeniem, jeśli otrzyma ona to samo zerwane połączenie z puli.

Myślę, że to był znakomity „Release It!” Michaela Nygarda. książka, która opisała ten scenariusz w jednej z jego historii z okopów.

Będziesz także chciał sprawdzić, w jaki sposób MySQL czyści martwe połączenia, ponieważ gdy Tomcat traci połączenie po 8 godzinach, baza danych również nie będzie wiedziała o nieudanym połączeniu.

Ostatnia uwaga, jeśli używasz Tomcata 7, przełącz się na nowe połączenie basen ponieważ oferuje lepszą wydajność niż DBCP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić do wiersza MYSQL z wielu tablic $_POST

  2. Lepiej użyć daty zerowej „0000-00-00 00:00:00” lub NULL w MySQL?

  3. Jak dopasować jeden znak w MySQL zamiast %?

  4. Co to znaczy uciec przed napisem?

  5. Zaktualizuj dwa różne wiersze w jednym wierszu SQL