线上环境数据库连接超时原因
博客专区 > zgw06629 的博客 > 博客详情
线上环境数据库连接超时原因
zgw06629 发表于3年前
线上环境数据库连接超时原因
  • 发表于 3年前
  • 阅读 45
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

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

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" />

共有 人打赏支持
粉丝 14
博文 54
码字总数 30471
×
zgw06629
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: