Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谁能告诉我为什么会发生这种情况;org.hibernate.exception.genericjdbception:无法执行查询";?_Java_Mysql_Hibernate_C3p0 - Fatal编程技术网

Java 谁能告诉我为什么会发生这种情况;org.hibernate.exception.genericjdbception:无法执行查询";?

Java 谁能告诉我为什么会发生这种情况;org.hibernate.exception.genericjdbception:无法执行查询";?,java,mysql,hibernate,c3p0,Java,Mysql,Hibernate,C3p0,从去年开始,我们的服务器一直在客户机站点上运行,但昨晚服务器突然停止响应,因为出现了一些SQL/Hibernate异常,但重新启动服务器后,一切又开始工作 以下是我们的hibernate配置(.hbm.xml): 如果您使用的是旧的mysql驱动程序,请使用 com.mysql.jdbc.Driver嵌套的异常表明mysql服务器端有东西中断了查询。我建议您检查MySQL日志和系统日志(在数据库服务器上),以了解可能的原因 没有足够的证据表明根本原因是Hibernate、C3PO、MySQL还是

从去年开始,我们的服务器一直在客户机站点上运行,但昨晚服务器突然停止响应,因为出现了一些SQL/Hibernate异常,但重新启动服务器后,一切又开始工作

以下是我们的hibernate配置(.hbm.xml):


如果您使用的是旧的mysql驱动程序,请使用


com.mysql.jdbc.Driver

嵌套的异常表明mysql服务器端有东西中断了查询。我建议您检查MySQL日志和系统日志(在数据库服务器上),以了解可能的原因


没有足够的证据表明根本原因是Hibernate、C3PO、MySQL还是JDBC驱动程序。或者别的什么。在不知道根本原因的情况下,没有人能够自信地提出解决方案。(或者至少,没有人可以有正当的信心做到这一点。IMO。)

当然,如果需要,我会这样做,但我可以知道为什么吗?这是怎么造成这个问题的?@AtanuPal您的查询执行似乎停止了,这很奇怪,请尝试下载最新的mysql驱动程序jar并替换驱动程序类名。问题是我无法再次复制,因为它在重新启动服务器后工作正常,但如果再次发生这种情况,我就完蛋了。我唯一能找出问题的是异常日志。你确定我们升级库后它不会出现问题吗?@AtanuPal最好使用正确的驱动程序类,而不是不推荐的驱动程序类。它可能会也可能不会解决你的问题。你是对的,找到了启动一切的驱动程序类,这会有帮助吗?不,不是真的。它所说的只是某个东西中断了正在执行会话到期的线程。我认为你必须通过反复试验来解决这个问题。您还需要查看MySQL日志……您是否找到了此Atanu的解决方案?我遇到的错误与BasicResourcePool.WaitAvailable()中的线程中断导致C3P0进入错误状态并停止响应请求的错误相同。抱歉,没有。我们只是优化了服务器中的查询,以便使用更少的连接并增加了hibernate中允许的最大连接数。事实上,我做到了!我们没有设置C3P0内清理的超时,也没有强制检查陈旧的连接。以下是我们必须设置的属性。(对所有编辑表示抱歉;此处的格式设置与预期不符):c3p0.idleConnectionTestPeriod、c3p0.testConnectionOnCheckin、c3p0.maxIdleTime、c3p0。maxIdleTimeExcessConnections@Patrick谢谢,我会试试这些,您能否建议将性能与更改的配置进行比较?这在我们的开发环境中是一个更大的问题,因为当出现陈旧连接时,开发环境的不活动时间要长得多。为了平衡我们将maxIdle超时设置为一小时,并且只在签入时检查陈旧的连接,这解决了开发问题。在生产环境中,签入检查并没有阻止查询,因为助手在范围之外进行了检查,并且没有使签出速度变慢。生产流量中从未出现过一个小时的不活动,但空闲超时似乎不会增加太多的负担,因此我们将其留作备用,以防所有客户在同一时间吃很长的午餐。
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
    <property name="connection.url">jdbc:mysql://127.0.0.1:3306/emessenger</property>
    <property name="hibernate.current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</property>
    <property name="connection.username">root</property>
    <property name="connection.password">root</property>
    <property name="show_sql">false</property>
    <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
    <property name="c3p0.min_size">1</property>
    <property name="c3p0.max_size">100</property>
    <property name="c3p0.timeout">5</property>
    <property name="c3p0.max_statements">0</property>
    2014-02-05 02:18:47,116 ERROR [services.alert.AlertDB] [577]: Exception occured while fetching <alert_details> table for quikc message  
   org.hibernate.exception.GenericJDBCException: could not execute query
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    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.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
    at services.alert.AlertDB.retrieveMessageDetails(AlertDB.java:568)
    at services.alert.Alert.getMessages(Alert.java:925)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
    at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
    at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
    at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144)
    at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139)
    at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:837)
    at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:273)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)
        Caused by: java.sql.SQLException: Query execution was interrupted
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1072)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3563)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3495)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2693)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2102)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2261)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
    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)
    ... 34 more
[2014-02-05 02:18:26,085] WARN com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource : com.mchange.v2.resourcepool.BasicResourcePool@1b5c22f -- an attempt to checkout a resource was interrupted, and the pool is still live: some other thread must have either interrupted the Thread attempting checkout! 
 java.lang.InterruptedException
    at java.lang.Object.wait(Native Method)
    at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1315)
    at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
    at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
    at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
    at org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:56)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
    at org.hibernate.loader.Loader.doQuery(Loader.java:673)
    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.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
    at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:305)
    at global.SessionMgmtListerner.thinClientStatus(SessionMgmtListerner.java:223)
    at global.SessionMgmtListerner.sessionDestroyed(SessionMgmtListerner.java:48)
    at org.apache.catalina.session.StandardSession.expire(StandardSession.java:708)
    at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:575)
    at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:700)
    at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:685)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1316)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
    at java.lang.Thread.run(Thread.java:619)