/ / jdbc4.CommunicationsException - délai mystérieux - java, mysql, jdbc, c3p0

jdbc4.CommunicationsException - délai mystérieux - java, mysql, jdbc, c3p0

Texte complet du message du journal:

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.

C'est étrange pour moi car c'est plus de 10heures. Mon programme a fonctionné avec succès et avec succès, y compris en communiquant avec la base de données, au cours des 10 heures précédentes. La meilleure hypothèse que j’ai, c’est qu’une connexion unique dans le pool était périmée, mais dans ce cas, je ne sais pas pourquoi elle ne serait pas nettoyée automatiquement ou si cette exception était liée à cette opération. Comment dois-je gérer cela?

J'utilise le pool de connexion c3p0.

Réponses:

1 pour la réponse № 1

c3p0 a beaucoup de moyens de tester Connections etles empêchant de chronométrer ou de devenir obsolète. Le moyen le plus simple de résoudre le problème que vous rencontrez serait de définir simplement le paramètre de configuration maxIdleTime sur, par exemple, 8 heures (28 800 secondes).

Toutefois, vous pouvez commencer par tester les connexions en général, par exemple en définissant idleConnectionTest period sur une valeur fréquente et en définissant testConnectionOnCheckin sur true. Voir...

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

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