网站传到服务器上后,网站运行正常,但是过一段时间就会出现could not execute query不能执行查询,也就是说不能连接数据库了,但为什么重启一下服务器网站就又用正常运行了 
详细错误: 
org.hibernate.exception.JDBCConnectionException: could not execute query 
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74) 
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
org.hibernate.loader.Loader.doList(Loader.java:2148) 
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 
org.hibernate.loader.Loader.list(Loader.java:2024) 
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) 
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308) 
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) 
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106) 
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
myDAO.MyComStateDAO.findState(MyComStateDAO.java:17) 
org.apache.jsp.index_jsp._jspService(index_jsp.java:65) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
root cause com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error: 
** BEGIN NESTED EXCEPTION ** com.mysql.jdbc.exceptions.jdbc4.CommunicationsException 
MESSAGE: Communications link failure Last packet sent to the server was 0 ms ago. STACKTRACE: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) 
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3134) 
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1818) 
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961) 
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2543) 
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737) 
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1888) 
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139) 
at org.hibernate.loader.Loader.getResultSet(Loader.java:1669) 
at org.hibernate.loader.Loader.doQuery(Loader.java:662) 
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) 
at org.hibernate.loader.Loader.doList(Loader.java:2145) 
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 
at org.hibernate.loader.Loader.list(Loader.java:2024) 
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) 
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308) 
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) 
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106) 
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
at myDAO.MyComStateDAO.findState(MyComStateDAO.java:17) 
at org.apache.jsp.index_jsp._jspService(index_jsp.java:65) 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) 
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) 
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) 
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) 
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) 
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) 
at java.lang.Thread.run(Thread.java:619) 
Caused by: java.net.SocketException: Software caused connection abort: socket write error 
at java.net.SocketOutputStream.socketWrite0(Native Method) 
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) 
at java.net.SocketOutputStream.write(SocketOutputStream.java:136) 
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) 
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) 
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3119) 
... 40 more 
** END NESTED EXCEPTION ** 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
com.mysql.jdbc.Util.getInstance(Util.java:381) 
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:985) 
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) 
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) 
com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1113) 
com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4038) 
com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4004) 
org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:442) 
org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:368) 
org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:105) 
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561) 
org.hibernate.loader.Loader.doQuery(Loader.java:661) 
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) 
org.hibernate.loader.Loader.doList(Loader.java:2145) 
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 
org.hibernate.loader.Loader.list(Loader.java:2024) 
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) 
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308) 
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) 
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106) 
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
myDAO.MyComStateDAO.findState(MyComStateDAO.java:17) 
org.apache.jsp.index_jsp._jspService(index_jsp.java:65) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs. 

解决方案 »

  1.   

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error: 根据报的日志信息,好象是数据库连接由于异常或错误而关闭了,所以再进行查询操作自然就不行了
      

  2.   

    建议LZ将连接时间设置长点。。 连接池中的连接对象有个最大空闲时间,xx.setMaxIdleTime(); 将时间设长点。。
      

  3.   

    问题解决,在网上查了查,才知道。
    出现错误的原因:
    Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该 connection。
    解决方法:
    建一个数据库连接池就可以解决此问题。