Le pilote MySQL JDBC dispose d'une fonctionnalité de reconnexion automatique qui peut être utile à l'occasion; voir "Pilote/Source de données Noms de classe, syntaxe d'URL et propriétés de configuration pour Connector/J ", et lisez les mises en garde.
Une deuxième option consiste à utiliser un pool de connexions JDBC.
Une troisième option consiste à effectuer une requête pour tester que votre connexion est toujours active au début de chaque transaction. Si la connexion n'est pas active, fermez-la et ouvrez une nouvelle connexion. Une requête courante est SELECT 1
. Voir aussi :
Une solution simple consiste à modifier les propriétés de configuration MySQL pour définir le délai d'inactivité de la session sur un très grand nombre. Cependant :
- Cela n'aide pas si votre application est susceptible d'être inactive pendant très longtemps.
- Si votre application (ou une autre application) perd des connexions, l'augmentation du délai d'inactivité peut signifier que les connexions perdues restent ouvertes indéfiniment... ce qui n'est pas bon pour l'utilisation de la mémoire de la base de données.