tomcat在长时间不活动后没有响应

时间:2017-07-20 06:43:00

标签: java mysql hibernate tomcat c3p0

我正在使用hibernate c3p0和mysql数据库,我的c3p0配置如下:         1

    <property name="hibernate.c3p0.idle_test_period">100</property>
        <property name="hibernate.c3p0.min_size">5</property>
        <property name="hibernate.c3p0.max_size">20</property>        
        <property name="hibernate.c3p0.max_statements">0</property>
        <property name="hibernate.c3p0.timeout">200</property>
<property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property>

它工作正常但是当服务器长时间闲置8-10个小时时出现问题,tomcat没有响应之后没有任何错误日志(mysql,hibernate,tomcat)它让我等待响应(我们将httprequest发送到servlet)但不抛出任何错误,我无法在tomcat日志中看到任何错误日志

所以我不确定它是否是c3p0或mysql的问题,任何人都可以提供帮助,非常感谢!!

1 个答案:

答案 0 :(得分:0)

当数据库位于一个单独的盒子上时,其间的防火墙设置为超时空闲连接。

在某些情况下,防火墙会以JDBC端无法检测的方式切断连接,并且尝试使用它会导致无限期阻塞。

如果它是一个自定义连接池,它在从池中返回之前向连接发送测试查询。使用&#39; Statement.setQueryTimeout&#39;将此测试查询配置为超时。所以它没有无限期地阻止。