我们的一位客户使用Netscaler作为Fuse服务器和Tomcat托管软件之间的平衡器中间件。 目前,我们的软件和netscaler之间正在经历奇怪的通信行为(我们正在使用Spring-WS进行SOAP请求):经过一段时间后,由于正在向netscaler发出请求并且正在等待响应,因此netscaler发送ACK,RST数据包到我们的服务器,因此,Java抛出“连接重置”IOException。 tcp转储如下:
根据netscaler docs,Win
重置数据包字段包含错误代码,在这种情况下为9300
,意味着'清空空闲连接',这意味着netscaler运行“僵尸”进程,它清除空闲连接,并且此进程已将我们的连接识别为空闲。
在这种情况下,为什么连接会被netscaler视为idle
?
答案 0 :(得分:0)
服务器和重置数据包之间的时间差是多少?您可以调整netscaler vserver上的空闲超时值,以用于空闲的客户端和服务器上的服务,这些服务器需要很长时间才能响应。
答案 1 :(得分:0)
好的,这是我读过的,并且已经说过了:
keepalive
个数据包(探测),并在发送几个数据包后才会采取措施,并且没有收到来自其他方的响应。虽然我们的客户确实发现了更深层次的问题,这些问题隐藏在服务实现中(长请求处理),但我们也可以应用keepalive-probe方法来停止连接重置。
链接:
http://www.tcpipguide.com/free/t_TCPConnectionManagementandProblemHandlingtheConnec-3.htm