Sterownik MySQL JDBC ma funkcję automatycznego ponownego łączenia, która może być czasami pomocna; zobacz „Sterownik/źródło danych Nazwy klas, składnia URL i właściwości konfiguracyjne dla Connector/J ” i przeczytaj zastrzeżenia.
Drugą opcją jest użycie puli połączeń JDBC.
Trzecią opcją jest wykonanie zapytania w celu sprawdzenia, czy połączenie jest nadal aktywne na początku każdej transakcji. Jeśli połączenie nie działa, zamknij je i otwórz nowe. Typowe zapytanie to SELECT 1
. Zobacz też:
Prostym rozwiązaniem jest zmiana właściwości konfiguracyjnych MySQL w celu ustawienia limitu czasu bezczynności sesji na naprawdę dużą liczbę. Jednak:
- To nie pomoże, jeśli Twoja aplikacja może być bezczynna przez naprawdę długi czas.
- Jeśli Twoja aplikacja (lub inna aplikacja) przecieka połączenia, zwiększenie limitu czasu bezczynności może oznaczać, że utracone połączenia pozostaną otwarte na czas nieokreślony... co nie jest dobre dla wykorzystania pamięci bazy danych.