autoreconnect mysql true,即使使用'autoReconnect = true',MySql JDBC超时

Occasionally, my Java/Tomcat6/Debian Squeeze application can't talk to the MySql server.

The Tomcat application is on a front-end server and MySql is on a separate, MySql-only box. A typical error is:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was56588 milliseconds ago.

The last packet sent successfully to the server was 56588 milliseconds ago, which

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.

The timeout time given is only 60 seconds, which seems very short. If it was an hour or more, I would simply setup a background task to ping the DB-server every few minutes. I've added the autoReconnect parameter to the opening URL, with no obvious impact.

Any idea as to what the problem is here?

Thanks

Pat

解决方案

Configure c3p0 properties for overcome this issue. Use properties like,

hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider

hibernate.c3p0.min_size=0

hibernate.c3p0.max_size=20

hibernate.c3p0.timeout=500

hibernate.c3p0.max_statements=50

hibernate.c3p0.idle_test_period=3000

hibernate.c3p0.testConnectionOnCheckout=true

hibernate.c3p0.acquire_increment=1

with JDBC connection URL url=jdbc:mysql://host/databasename?autoReconnect=true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值