首页 > 数据库技术 > 详细

线上环境数据库连接超时原因

时间:2015-04-29 19:59:52      阅读:317      评论:0      收藏:0      [点我收藏+]

查看线上日志发现了如下的异常:

ERROR 500.jsp -

Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 31,680,464 milliseconds ago.  The last packet sent successfully to the server was 31,680,469 milliseconds ago. is longer than the server configured value of ‘wait_timeout‘. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property ‘autoReconnect=true‘ to avoid this problem.

线上服务器wait_timeout的值为:

select @@wait_timeout;

+----------------+

| @@wait_timeout |

+----------------+

|           7200 |

+----------------+

即两个小时内没有连接的话,服务器会断掉连接。等这时有请求过来的话,请求池会分配一中断的连接,于是报了如上的异常。

经搜索可以在连接池中添加一些额外的配置来避免此问题,如DBCP:

<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->

 <property name="timeBetweenEvictionRunsMillis" value="60000" />

 <property name="validationQuery" value="SELECT ‘x‘" />

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

线上环境数据库连接超时原因

原文:http://my.oschina.net/zhuguowei/blog/408267

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!