/ / jdbc4.CommunicationsException - tiempo de espera misterioso - java, mysql, jdbc, c3p0

jdbc4.CommunicationsException - timeout misterioso - java, mysql, jdbc, c3p0

Texto completo del mensaje de registro:

Log Message: An error occurred while grabbing new users com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 44,567,434 milliseconds ago. The last packet sent successfully to the server was 44,567,434 milliseconds ago. is longer than the server configured value of "wait_timeout". You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property "autoReconnect=true" to avoid this problem.

Esto es extraño para mí porque es más de 10horas Mi programa se ejecutó feliz y satisfactoriamente, incluida la comunicación con la base de datos, durante las 10 horas anteriores. La mejor hipótesis que tengo es que una única conexión en el grupo estaba obsoleta, pero en ese caso no sé por qué esto no se limpiaría automáticamente o si esta excepción estaba relacionada con esa operación. ¿Cómo debería manejar esto?

Estoy utilizando el conjunto de conexiones c3p0.

Respuestas

1 para la respuesta № 1

c3p0 tiene muchos medios para probar Connections yevitando que se agote el tiempo o se desvanezcan. La forma más sencilla de resolver el problema particular que está viendo sería simplemente establecer el parámetro de configuración maxIdleTime en, digamos, 8 horas (28800 segundos).

pero es posible que desee comenzar a probar Connections en general, por ejemplo, configurando el período idleConnectionTest en algo frecuente y configurando testConnectionOnCheckin en verdadero. Ver...

http://www.mchange.com/projects/c3p0/#configuring_connection_testing

http://www.mchange.com/projects/c3p0/#configuration_properties