MySQL JDBC-driveren har en autogenopret forbindelsesfunktion, der kan være nyttig til tider; se "Driver/datakilde Klassenavne, URL-syntaks og konfigurationsegenskaber for Connector/J ", og læs advarslerne.
En anden mulighed er at bruge en JDBC-forbindelsespulje.
En tredje mulighed er at udføre en forespørgsel for at teste, at din forbindelse stadig er i live ved starten af hver transaktion. Hvis forbindelsen ikke er i live, skal du lukke den og åbne en ny forbindelse. En almindelig forespørgsel er SELECT 1
. Se også:
En simpel løsning er at ændre MySQL-konfigurationsegenskaberne for at indstille sessionens inaktive timeout til et virkelig stort antal. Dog:
- Dette hjælper ikke, hvis din applikation kan være inaktiv i rigtig lang tid.
- Hvis dit program (eller et andet program) lækker forbindelser, kan en forøgelse af inaktiv timeout betyde, at mistede forbindelser forbliver åbne på ubestemt tid ... hvilket ikke er godt for databasehukommelsesudnyttelse.