Hibernate para de funcionar: could not execute query

Bom dia pessoal!

Estou com um problema muito estranho com o Hibernate. Estou utilizando Hibernate 3 + Struts + MySQL 5 + Conector JDBC 5.X.

Quando efetuo o primeiro acesso a minha aplicação, as consultas a base de dados funcionam, mas depois de um tempo de espera o erro abaixo surge. Na verdade o Hibernate consegue se conectar com o banco de dados, mas não consegue efetuar consultas. Algo importante que acontece é se eu der um stop/start na app, o erro some, mas depois de um tempo sem utilizá-la ele volta a acontecer.

Detalhe: Esse erro não ocorre em desenvolvimento (local), apenas no servido onde o hospedei.

Obrigado pela atenção.

org.hibernate.exception.JDBCConnectionException: could not execute query
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.loader.Loader.doList(Loader.java:2223)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
	at org.hibernate.loader.Loader.list(Loader.java:2099)
	at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
	at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
	at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
	at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
	at br.com.metodista.sisac.integracao.AdmDAO.obterListaUsuarioNome(AdmDAO.java:825)
	at br.com.metodista.sisac.action.AutenticacaoAction.execute(AutenticacaoAction.java:78)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at br.com.metodista.sisac.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Communication link failure: java.io.EOFException, underlying cause: null

** BEGIN NESTED EXCEPTION ** 

java.io.EOFException

STACKTRACE:

java.io.EOFException
	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1319)
	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1463)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2090)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1496)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
	at org.hibernate.loader.Loader.doQuery(Loader.java:674)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
	at org.hibernate.loader.Loader.doList(Loader.java:2220)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
	at org.hibernate.loader.Loader.list(Loader.java:2099)
	at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
	at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
	at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
	at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
	at br.com.metodista.sisac.integracao.AdmDAO.obterListaUsuarioNome(AdmDAO.java:825)
	at br.com.metodista.sisac.action.AutenticacaoAction.execute(AutenticacaoAction.java:78)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at br.com.metodista.sisac.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)


** END NESTED EXCEPTION **


	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1638)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2090)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1496)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
	at org.hibernate.loader.Loader.doQuery(Loader.java:674)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
	at org.hibernate.loader.Loader.doList(Loader.java:2220)
	... 33 more

Já tive algo assim com: tempo para expirar a sessão de conexão com banco, e com permissão de select.

Você nunca consegue fazer select, ou é só depois de um tempo? ( não entendi esse ponto, desculpe ). Se você consegue executar select e só depois de um tempo começa a dar esse erro, então meu chapa… hahaha, sei lá… (ai talvez seja o lance de sessão que eu disse).

Falows

Bom dia Victor!

É só depois de um tempo, no início é normal. Eu posso abrir e fechar varias sessões, tudo funciona normalmente, mas isso se eu nao parar de usar o sistema. Se eu der o start na app e ficar uma hora usando, sem parar (encerrando a sessão e abrindo outras), o problema nao acontece, mas se eu parar de usar o sistema por cinco minutos o problema acontece.

Valeu.