Tengo una aplicación de grails pequeña ejecutándose en Tomcat en Ubuntu en un VPS. Uso MySql como mi almacén de datos y todo funciona bien a menos que deje la aplicación por más de medio día (¿8 horas?). Realicé algunas búsquedas y aparentemente este es el predeterminado wait_timeout
en mysql.cnf, así que después de 8 horas la conexión morirá pero Tomcat no lo sabrá, por lo tanto, cuando el siguiente usuario intente ver el sitio, verá el error de conexión fallida. Actualizar la página solucionará esto, pero quiero deshacerme por completo del error. Para mi versión de MySql (5.0.75) solo tengo my.cnf y no contiene dicho parámetro. En cualquier caso, cambiar este parámetro no resuelve el problema.Problema de tiempo de espera de conexión de MySQL - Aplicación Grails en Tomcat usando Hibernate y ORM
Parece que este Blog Post informa un error similar, pero aún no entiendo completamente qué debo configurar para solucionarlo y también espero que haya una solución más simple que otra biblioteca de terceros. La máquina en la que estoy corriendo tiene 256 MB de RAM y estoy tratando de mantener el número de programas/servicios funcionando al mínimo.
¿Hay algo que pueda configurar en Grails/Tomcat/MySql para que esto desaparezca?
Gracias de antemano,
Gav
Desde mi catalina.out;
2010-04-29 21:26:25,946 [http-8080-2] ERROR util.JDBCExceptionReporter - The last packet successfully received from the server was 102,906,722 milliseconds$
2010-04-29 21:26:25,994 [http-8080-2] ERROR errors.GrailsExceptionResolver - Broken pipe
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
...
2010-04-29 21:26:26,016 [http-8080-2] ERROR util.JDBCExceptionReporter - Already closed.
2010-04-29 21:26:26,016 [http-8080-2] ERROR util.JDBCExceptionReporter - Already closed.
2010-04-29 21:26:26,017 [http-8080-2] ERROR servlet.GrailsDispatcherServlet - HandlerInterceptor.afterCompletion threw exception
org.hibernate.exception.GenericJDBCException: Cannot release connection
at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: Already closed.
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:84)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:181)
... 1 more
es grails-app/conf/spring/Resource.grooy con grails-app/conf/spring/resources.groovy? Estoy usando Grails 1.2.1 y cuando lo agregué, me encontré con este error: === No se puede crear el controlador JDBC de la clase '' para conectar la URL 'nulo' java.sql.SQLException: Ningún controlador adecuado = == – firnnauriel
de hecho, está funcionando si creé un nuevo Resource.groovy. está bien por ahora, supongo. – firnnauriel
@firnnauriel ¿Esto realmente hizo lo que pretendía cuando creó el archivo Resource.groovy? – skaz