Web 在Hibernate 3.0中运行8小时后无法连接

Web 在Hibernate 3.0中运行8小时后无法连接,web,database-connection,hibernate3,Web,Database Connection,Hibernate3,我已经像这样配置了我的hibenate.config.xml…但是在几个小时后没有获得DB连接…在MYSQL中,等待超时默认为28800或8小时…这里它小于这个值。没有线索 <property name="connection.url">jdbc:mysql://11.243.188.53/XXX</property> <property name="connection.driver_class">com.mysql.jdbc.Driver&

我已经像这样配置了我的hibenate.config.xml…但是在几个小时后没有获得DB连接…在MYSQL中,等待超时默认为28800或8小时…这里它小于这个值。没有线索

    <property name="connection.url">jdbc:mysql://11.243.188.53/XXX</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.username">admin</property>
    <property name="connection.password">password1$</property>
    <!-- Set AutoCommit to true -->
    <property name="connection.autocommit"> false </property>
    <property name="show_sql">true</property>

    <!-- SQL Dialect to use. Dialects are database specific -->
    <property name="dialect"> org.hibernate.dialect.MySQLDialect</property>
     <property name="hibernate.hbm2ddl.auto">update</property>




      <property name="hibernate.dbcp.maxActive">20</property>
        <property name="hibernate.dbcp.maxIdle">10</property>
        <property name="hibernate.dbcp.maxWait">-1</property>
        <property name="hibernate.dbcp.whenExhaustedAction">2</property>
        <property name="hibernate.dbcp.testOnBorrow">true</property>
        <property name="hibernate.dbcp.testOnReturn">true</property>
         <property name="hibernate.dbcp.validationQuery">SELECT 1</property>
        <property name="hibernate.dbcp.testWhileIdle">true</property>
        <property name="hibernate.dbcp.ps.maxActive">8</property>
        <property name="hibernate.dbcp.ps.maxIdle">8</property>
        <property name="hibernate.dbcp.ps.maxWait">60</property>
        <property name="hibernate.dbcp.ps.whenExhaustedAction">1</property>



       <!-- Disable second-level cache. -->
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
    <property name="cache.use_query_cache">false</property>
    <property name="cache.use_minimal_puts">false</property>
    <property name="max_fetch_depth">3</property>
还有一个日志:

原因:java.net.SocketException:软件导致的连接中止:套接字写入错误 在java.net.SocketOutputStream.socketWrite0Native方法中 位于java.net.SocketOutputStream.socketWriteUnknown源 位于java.net.SocketOutputStream.writeUnknown源 位于java.io.BufferedOutputStream.flushBufferUnknown Source 位于java.io.BufferedOutputStream.flushUnknown Source 位于com.mysql.jdbc.MysqlIO.sendMysqlIO.java:3272
... 89更多

您可能无法在完成休眠会话后释放它。。尝试使用OpenSessionInViewFilter,避免使用factory.openSession

在我正在从事的一个项目中,我曾遇到过类似的问题。。 如果您能在我确定原因之前发布stacktrace,那将非常有帮助

  <property name="testOnBorrow" value="true"/>

在xml中的数据库连接bean中添加属性


上述内容将在您每次从池中借用时测试连接。

错误statck跟踪在哪里?不获取数据库连接根本没有帮助。添加了错误日志,请查看它。您可以检查您的异常是否匹配,或者因为出现异常有两个原因。似乎只是..但是在我的hibernate.config.xml中maxwait设置为-1。我需要做什么?我在hibernate配置中有相同的设置检查mysqljdbc的版本。从mysql站点获取最新版本并重试。通过在mysql的my.cnf中设置query\u cache\u size=0禁用查询缓存,如果失败,请尝试更改流式查询,使其包含SQL\u NO\u缓存标志。使用该标志时,查询应类似于从tableName中选择SQL\u NO\u CACHE*。。这是由于mysql中的查询缓存损坏造成的。
  <property name="testOnBorrow" value="true"/>
            <prop key="hibernate.dbcp.validationQuery">select 1</prop> 
            <prop key="hibernate.dbcp.testOnReturn">true</prop>