你们好!网络
前段时间在客户生产平台部署一套MQ与公司内部的MQ进行数据传输,可是发现通道状态常常retrying。tcp
一、ping对端的IP,telnet对端的端口都很正常。spa
二、MQ通道的启动正常,经过tcpdump host $IP -X -s 0,可以看到TCP的3次握手和MQ通道本身的启动信息。日志
三、MQ通道启动之后,状态变为RUNNING,子状态变为MQGET。过了5分钟,发送通道向接受通道发送一个确认包,正常状况下接受通道应该会有回应,可是如今并无回应。部署
四、等待一段时间MQ通道状态虽然为RUNNING,可是子状态已经由MQGET变为received,说明MQ的发送通道等待接受由接受通道传回的通道确认信息。select
五、MQ通道启动以后过9分钟就会自动关闭,并从新启动,并在MQ日志中产生以下内容:数据
2016年09月11日 22时31分02秒 - Process(73971.1) User(mqm) Program(runmqchl) Host(XXXX)
AMQ9259: 来自主机“111.111.111.111(1400)”的链接超时。端口
说明:
来自主机“111.111.111.111(1400)”经过 TCP/IP 进行的链接超时。
操做:
select() [TIMEOUT] 360 seconds 调用超时。检查以找到不能在预期时间内接收数据的原
因。改正问题。从新链接通道,或者等待重试通道以使其本身从新链接。时间
这是因为客户的网络具备链接90秒之内无数据传输就被端口的网络限制。ping
针对以上的问题,修改MQ发送通道和接受通道的HBINT参数,我把心跳的间隔修改成58秒。