【问题标题】:Hibernate Connection time out - java.io.EOFException休眠连接超时 - java.io.EOFException
【发布时间】:2012-01-06 17:43:03
【问题描述】:

启动连接 2 天后抛出异常...

严重:Servlet Reciever 的 Servlet.service() 抛出异常 org.hibernate.exception.JDBCConnectionException:无法执行查询 在 org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97) 在 org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 在 org.hibernate.loader.Loader.doList(Loader.java:2235) 在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129) 在 org.hibernate.loader.Loader.listenter code here(Loader.java:2124) 在 org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) 在 org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) 在 org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) 在 org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149) 在 org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 在 com.appzone.chatrooms.dao.MemberDao.getStatus(MemberDao.java:237) 在 com.appzone.chatrooms.Sender.sendResponse(Sender.java:53) 在 com.appzone.chatrooms.Service.sender(Service.java:337) 在 com.appzone.chatrooms.Service.chat(Service.java:32) 在 com.appzone.chatrooms.Main.Controller(Main.java:59) 在 com.appzone.chatrooms.Reciever.onMessage(Reciever.java:27) 在 >hsenidmobile.sdp.rest.servletbase.MchoiceAventuraSmsMoServlet.doPost(MchoiceAventuraSmsMoServlet.java:67) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:619) 原因:com.mysql.jdbc.CommunicationsException:由于底层异常导致通信链接失败:

 **BEGIN NESTED EXCEPTION** 

**java.io.EOFException**

**STACKTRACE:**

>java.io.EOFException**
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1845)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2292)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2788)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1534)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1625)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:2297)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:2226)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1812)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1657)
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1812)
    at org.hibernate.loader.Loader.doQuery(Loader.java:697)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    at org.hibernate.loader.Loader.doList(Loader.java:2232)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
    at org.hibernate.loader.Loader.list(Loader.java:2124)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
    at com.appzone.chatrooms.dao.MemberDao.getStatus(MemberDao.java:237)
    at com.appzone.chatrooms.Sender.sendResponse(Sender.java:53)
    at com.appzone.chatrooms.Service.sender(Service.java:337)
    at com.appzone.chatrooms.Service.chat(Service.java:32)
    at com.appzone.chatrooms.Main.Controller(Main.java:59)
    at com.appzone.chatrooms.Reciever.onMessage(Reciever.java:27)
    at hsenidmobile.sdp.rest.servletbase.MchoiceAventuraSmsMoServlet.doPost(MchoiceAventuraSmsMoServlet.java:67)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    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:852)
    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)

这是 hibernate.cfg.xml 文件

      <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>
        <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/chatrooms</property>
        <property name="hibernate.connection.username">username</property>
        <property name="hibernate.connection.password">password</property>
        <property name="show_sql">true</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>

        <property name="hibernate.c3p0.min_size">5</property>
        <property name="hibernate.c3p0.max_size">100</property>
        <property name="hibernate.c3p0.timeout">300</property>
        <property name="hibernate.c3p0.max_statements">50</property>
        <property name="hibernate.c3p0.idle_test_period">3000</property>

        <!-- Mapping files -->
        <mapping class="com.appzone.chatrooms.Member" />
        <mapping class="com.appzone.chatrooms.Room" />
    </session-factory>
</hibernate-configuration>

我找不到此错误的解决方案...有什么建议吗?

【问题讨论】:

  • 看起来连接正在关闭,而系统仍在等待响应 - 可能是查询缓慢或因为系统遇到内存问题。尝试增加 c3p0 超时并检查内存问题。您在日志中还看到了什么?

标签: java hibernate tomcat c3p0


【解决方案1】:

这个帖子表明这可能是@aishwarya 提到的超时问题

http://www.zkoss.org/forum/listComment/7856

【讨论】:

    猜你喜欢
    • 2012-03-31
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2016-07-15
    相关资源
    最近更新 更多