org.hibernate.exception.JDBCConnectionException: could not execute query
2008-07-02 10:25
495 查看
数据库为mysql,客户端使用hibernate进行连接,结果长时间没有数据访问的话,重新访问数据库就会报错:
root cause
root cause
root cause
javax.servlet.ServletException: org.hibernate.exception.JDBCConnectionException: could not execute query org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) com.monet.common.servlet.ExtendActionServlet.process(ExtendActionServlet.java:85) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
org.hibernate.exception.JDBCConnectionException: could not execute query org.hibernate.exception.SQLStateConverter.convert(Unknown Source) org.hibernate.exception.JDBCExceptionHelper.convert(Unknown Source) org.hibernate.loader.Loader.doList(Unknown Source) org.hibernate.loader.Loader.listIgnoreQueryCache(Unknown Source) org.hibernate.loader.Loader.list(Unknown Source) org.hibernate.loader.hql.QueryLoader.list(Unknown Source) org.hibernate.hql.ast.QueryTranslatorImpl.list(Unknown Source) org.hibernate.engine.query.HQLQueryPlan.performList(Unknown Source) org.hibernate.impl.SessionImpl.list(Unknown Source) org.hibernate.impl.QueryImpl.list(Unknown Source) com.monet.ecai.bean.MemberDAO.getUserName(MemberDAO.java:42) com.monet.lottery.user.UserAction.doUserReg(UserAction.java:154) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) com.monet.common.servlet.ActionExtend.callActionMethod(ActionExtend.java:214) com.monet.common.servlet.ActionExtend.execute(ActionExtend.java:144) org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53) org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) com.monet.common.servlet.ExtendActionServlet.process(ExtendActionServlet.java:85) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was55512 seconds ago.The last packet sent successfully to the server was 55512 seconds ago, which 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. sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) java.lang.reflect.Constructor.newInstance(Unknown Source) com.mysql.jdbc.Util.handleNewInstance(Util.java:406) com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3246) com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1917) com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885) org.hibernate.jdbc.AbstractBatcher.getResultSet(Unknown Source) org.hibernate.loader.Loader.getResultSet(Unknown Source) org.hibernate.loader.Loader.doQuery(Unknown Source) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Unknown Source) org.hibernate.loader.Loader.doList(Unknown Source) org.hibernate.loader.Loader.listIgnoreQueryCache(Unknown Source) org.hibernate.loader.Loader.list(Unknown Source) org.hibernate.loader.hql.QueryLoader.list(Unknown Source) org.hibernate.hql.ast.QueryTranslatorImpl.list(Unknown Source) org.hibernate.engine.query.HQLQueryPlan.performList(Unknown Source) org.hibernate.impl.SessionImpl.list(Unknown Source) org.hibernate.impl.QueryImpl.list(Unknown Source) com.monet.ecai.bean.MemberDAO.getUserName(MemberDAO.java:42) com.monet.lottery.user.UserAction.doUserReg(UserAction.java:154) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) com.monet.common.servlet.ActionExtend.callActionMethod(ActionExtend.java:214) com.monet.common.servlet.ActionExtend.execute(ActionExtend.java:144) org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53) org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) com.monet.common.servlet.ExtendActionServlet.process(ExtendActionServlet.java:85) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.net.SocketException: Software caused connection abort: socket write error java.net.SocketOutputStream.socketWrite0(Native Method) java.net.SocketOutputStream.socketWrite(Unknown Source) java.net.SocketOutputStream.write(Unknown Source) java.io.BufferedOutputStream.flushBuffer(Unknown Source) java.io.BufferedOutputStream.flush(Unknown Source) com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3227) com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1917) com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885) org.hibernate.jdbc.AbstractBatcher.getResultSet(Unknown Source) org.hibernate.loader.Loader.getResultSet(Unknown Source) org.hibernate.loader.Loader.doQuery(Unknown Source) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Unknown Source) org.hibernate.loader.Loader.doList(Unknown Source) org.hibernate.loader.Loader.listIgnoreQueryCache(Unknown Source) org.hibernate.loader.Loader.list(Unknown Source) org.hibernate.loader.hql.QueryLoader.list(Unknown Source) org.hibernate.hql.ast.QueryTranslatorImpl.list(Unknown Source) org.hibernate.engine.query.HQLQueryPlan.performList(Unknown Source) org.hibernate.impl.SessionImpl.list(Unknown Source) org.hibernate.impl.QueryImpl.list(Unknown Source) com.monet.ecai.bean.MemberDAO.getUserName(MemberDAO.java:42) com.monet.lottery.user.UserAction.doUserReg(UserAction.java:154) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) com.monet.common.servlet.ActionExtend.callActionMethod(ActionExtend.java:214) com.monet.common.servlet.ActionExtend.execute(ActionExtend.java:144) org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53) org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) com.monet.common.servlet.ExtendActionServlet.process(ExtendActionServlet.java:85) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
查阅相关文档,造成报错的原因在于:Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。 hibernate 配置如下 <property name="hibernate.connection.provider_class"> org.hibernate.connection.C3P0ConnectionProvider </property> <property name="hibernate.c3p0.min_size">10</property> <property name="hibernate.c3p0.max_size">100</property> <property name="hibernate.c3p0.timeout">10</property> <property name="hibernate.c3p0.max_statements">100</property> <property name="hibernate.c3p0.idle_test_period">300</property> <property name="hibernate.c3p0.acquire_increment">5</property> <property name="hibernate.c3p0.validate">true</property>
相关文章推荐
- 用数据库连接池解决org.hibernate.exception.JDBCConnectionException:could not execute query
- org.hibernate.exception.JDBCConnectionException: could not execute query
- org.hibernate.exception.JDBCConnectionException: could not execute query
- 从数据库方面解决org.hibernate.exception.JDBCConnectionException:could not execute query
- 用数据库连接池解决org.hibernate.exception.JDBCConnectionException:could not execute query
- 数据库长时间未操作自己断开org.hibernate.exception.JDBCConnectionException: could not execute query
- 用数据库连接池解决org.hibernate.exception.JDBCConnectionException:could not execute query
- 用数据库连接池解决org.hibernate.exception.JDBCConnectionException:could not execute query
- org.hibernate.exception.JDBCConnectionException: could not execute query
- 用数据库连接池解决org.hibernate.exception.JDBCConnectionException:could not execute query
- Oracle:org.hibernate.exception.JDBCConnectionException: could not execute query
- org.hibernate.exception.JDBCConnectionException: could not execute query
- org.hibernate.exception.JDBCConnectionException: could not execute query
- org.hibernate.exception.JDBCConnectionException: could not execute query
- org.hibernate.exception.JDBCConnectionException: could not execute query
- HTTP Status 500 - could not execute query; nested exception is org.hibernate.exception.JDBCConnectio
- org.hibernate.exception.GenericJDBCException: could not execute query项目登录验证报错
- 记录org.hibernate.exception.GenericJDBCException: could not execute query异常
- org.hibernate.exception.GenericJDBCException: could not execute statement
- code is 9998;desc is 插入失败exception is org.hibernate.exception.JDBCConnectionException: Could not op