Como sugieres, es porque mysql cierra las conexiones inactivas después de cada wait_timeout
pases; tiene algunas opciones para solucionar su problema:
- use un administrador de grupo de conexiones, como c3p0 o apache DBCP . Esto se encargará de la revalidación de las conexiones a pedido, eventualmente puede especificar qué consulta ejecutar para probar si la conexión está activa.
- establecer
wait_timeout
en mysql lo suficientemente grande para su caso de uso (el valor predeterminado es 8 horas). - configure una tarea programada (por ejemplo, usando quartz ) que refresca las conexiones, "haciendo ping" al servidor mysql.