ActiveMQ:Communications link failure问题以及解决办法
ActiveMQ版本:5.5.1 MQ 所使用的 MySQL 是 InnoDB存储引擎 记录人:@郑昀 现象: 业务表面现象:无。系统现象:无。 日志信息:业务系统发送 MQ 消息时,下面这种错误日志断断续续地一直都有: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 60,001 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. 原因: ActiveMQ 持久化方案我们选的是 MySQL 。 MySQL 的全局变量 wait_timeout 默认是28800,单位是秒,即8小时。 运维部早先在测试 ActiveMQ 5.5 主从方案时,发现当 Master 宕机后,锁(数据库里的一个排他锁)有可能没有释放,导致 Slave 无法成为 Master( 这是 ActiveMQ 5.5 的 BUG ,已在 5.6.0和5.7.0 修复)。 所以运维部将 wait_timeout 参数调短为了 60秒 ,希望能加速锁释放。