Como você sugere, é porque o mysql fecha conexões ociosas após cada
wait_timeout
passes; você tem algumas opções para contornar seu problema:- use um gerenciador de pool de conexões, como c3p0 ou apache DBCP . Isso cuidará da revalidação de conexões sob solicitação, eventualmente você pode especificar qual consulta executar para testar se a conexão está ativa.
- definir
wait_timeout
no mysql grande o suficiente para o seu caso de uso (o padrão é 8 horas). - configurar uma tarefa agendada (por exemplo, usando quartz ) que atualiza as conexões, "pingando" o servidor mysql.