Java监视应用程序的FIN_WAIT问题

时间:2011-10-13 17:29:22

标签: java tcp

在运行Introscope的RHEL 5.4上遇到FIN_WAIT1问题。到目前为止我所观察到的是,当我们使用Introscope监视的目标JVM挂起时,在该主机上运行的代理停止发送数据,并且在一段时间后服务器上的套接字(Introscope服务器)进入FIN_WAIT1状态并且它保持在那里如果我们重新启动目标JVM,很长一段时间就会被清除。

我想知道是否由于Introscope中的错误而发生这种情况,或者是否与TCP层有关。

1 个答案:

答案 0 :(得分:0)

FIN_WAIT1位于TCP层 - 这意味着您的计算机的tcp堆栈正在等待来自另一方TCP堆栈的连接关闭消息之一。它通常不会造成太大的伤害,除了采取一些微小的内核状态,直到它超时。但有时它可能会阻止您在同一端口上重新启动服务器,在这种情况下,您可以在第一次打开它之前在套接字上设置SO_REUSESOCKET和/或SO_REUSEPORT选项。 (如果您正在共享机器,这确实会产生一些安全隐患。)