sql >> Base de Datos >  >> RDS >> Mysql

La aplicación Spring pierde la conexión con MySql después de 8 horas. ¿Cómo configurar correctamente?

La respuesta corta es que debería ser suficiente. DBCP admite la prueba de la conexión al pedir prestado del grupo de conexiones (el valor predeterminado), pero también admite la prueba al regresar y la prueba mientras está inactivo.

También vale la pena entender qué puede estar yendo mal aquí. Parece que algo entre su servidor Tomcat y la base de datos está interrumpiendo la conexión inactiva después de un tiempo de espera (como un enrutador o un firewall). El problema con esto es que Tomcat cree que todavía tiene una conexión válida, intenta trabajar con la conexión y falla, pero mantiene viva la conexión y la devuelve al grupo. Ahora, cualquier otro intento de hablar con la base de datos fallará si se le proporciona la misma conexión interrumpida desde el grupo.

Creo que fue el excelente 'Release It!' de Michael Nygard. libro que describía este escenario en una de sus historias desde las trincheras.

También querrá ver cómo MySQL limpia las conexiones inactivas, ya que cuando Tomcat pierde la conexión después de 8 horas, la base de datos tampoco se dará cuenta de la conexión fallida.

Un último punto, si está utilizando Tomcat 7, cambie a su nueva conexión piscina ya que ofrece un mejor rendimiento que DBCP.