最近开发一直碰到一个问题:Communications link failure due to underlying exception:
问题:
Communications link failure due to underlying exception:
?
登录时,常常要登录2次,后来直接就不可以等了。
?
解决:
这个问题困惑了我很长时间,中间好像是在分析的,但是没有分析道重点上来,程序没有动过,那么数据库了,就应该是数据库
?
了。那么是数据那里链接的时间。对,是时间。
?
程序中的连接池中的链接,去取的时候,其实已经断开了。
?
借鉴(转)
在61家教网的运行阶段,发现很长时间没有访问后,都会出现 Communications link failure due to underlying exception的异常。但是在测试阶段一切都是正常的。
?????? 该系统采用了hibernate框架,使用C3P0的连接池。数据库为Mysql。出现的异常信息如下:
?
?
-----------------------------------------------------------
MySQL连接如果8小时未使用,在查询使用到该连接会报:
异常名称:com.mysql.jdbc.CommunicationsException
异常信息: Communications link failure due to underlying exception
如果是MySQL5以前的版本,需要修改连接池配置中的URL,添加autoReconnect=true
如果是MySQL5 以后的版本,需要修改my.cnf(或者my.ini)文件,在[mysqld]后面添加
wait_timeout = 172800
interactive-timeout = 172800
单位都是秒,记得必须都添加,否则不起作用,通过show variables查看wait_timeout的值。
?
1 楼 无风也飘飘 2011-01-18 感谢,我也正在为这个问题烦恼,我这边现在甚至是写了个定时器来解决这个问题,每隔6,7个小时就跑一遍链接。