El controlador MySQL JDBC tiene una función de reconexión automática que puede ser útil en ocasiones; consulte "Controlador/Fuente de datos Nombres de clase, sintaxis de URL y propiedades de configuración para Connector/J ", y lea las advertencias.
Una segunda opción es utilizar un grupo de conexiones JDBC.
Una tercera opción es realizar una consulta para probar que su conexión aún está activa al comienzo de cada transacción. Si la conexión no está viva, ciérrela y abra una nueva conexión. Una consulta común es SELECT 1
. Véase también:
Una solución simple es cambiar las propiedades de configuración de MySQL para establecer el tiempo de espera de inactividad de la sesión en un número realmente grande. Sin embargo:
- Esto no ayuda si es probable que su aplicación esté inactiva durante mucho tiempo.
- Si su aplicación (o alguna otra aplicación) pierde conexiones, aumentar el tiempo de inactividad podría significar que las conexiones perdidas permanecerán abiertas indefinidamente... lo cual no es bueno para la utilización de la memoria de la base de datos.