MYSQL偶尔会出现这种异常,使用的C3P0连接池,请帮我看看。

吃菜的鸟 发布于 2012/05/12 13:52
阅读 3K+
收藏 2

The last packet successfully received from the server was 2,411,075 milliseconds ago.  The last packet sent successfully to the server was 2,411,076 milliseconds ago.; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

mysql的wait_timeout和interactive_timeout值为604800

C3P0的主要参数设置如下:

<property name="minPoolSize" value="2" />

<property name="maxPoolSize" value="50" />

<property name="initialPoolSize" value="2" />

<property name="maxIdleTime" value="9000" />

<property name="acquireIncrement" value="2" />

<property name="maxConnectionAge" value="18000" />

<property name="idleConnectionTestPeriod" value="5400" />

<property name="checkoutTimeout" value="10000" />

<property name="automaticTestTable" value="test_c3p0" />

出现异常的时间不确定,可能启动十几分钟后就有这种异常。在网上找了很多方法都不行,大部分都是COPY的。

我的mysql的wait_timeout是七天,按道理讲,mysql那边应该不会出问题。

c3p0的maxConnectionAge为5小时,空闲超时为2个半小时。十几分钟就抛出异常太不应该了,并且我也设置了automaticTestTable

以下是问题补充:

@吃菜的鸟:C3P0 将testConnectionOnCheckin和testConnectionOnCheckout设置为true后就好点了,不过文档不推荐使用这两个参数。如果开始了会有什么影响吗? (2012/05/12 15:34)
加载中
0
wartskcaj
wartskcaj
换个别的,BoneCP不错
0
jobell
jobell
我也有这个问题,数据连接长时间不使用就会发生这样的问题。我现在做了一个定时任务,定期去访问我的网站。就解决了。
0
吃菜的鸟
吃菜的鸟

引用来自“jackstraw”的答案

换个别的,BoneCP不错
之前是使用的BoneCP,但是我获取正在使用的连接数量时经常为负数,不知道什么原因。看了一下原码,他是用创建的连接减去空闲的连接,结果既然为负数。
0
吃菜的鸟
吃菜的鸟
C3P0 将testConnectionOnCheckin和testConnectionOnCheckout设置为true后就好点了,不过文档不推荐使用这两个参数。如果开始了会有什么影响吗?
0
geeksun
geeksun

后来问题怎么解决的?

是使用maxIdleTime=60解决的吗?

返回顶部
顶部