如何使用CLOSE_WAIT状态终止tcp连接

时间:2011-11-30 12:35:40

标签: tcp tomcat5.5

我发现我的网络应用程序出现问题,hibernate连接无法正常关闭。 但考虑到Web应用程序的复杂性,至少需要15到30天。

与此同时,我想手动关闭连接。

这样我可以在不重启tomcat的情况下关闭此连接? 有一个命令可以用来杀死这个连接池吗?

我在hibernate配置中发现了一个错误,要解决

#netstat -anp |grep 3306 |grep CLOSE_WAIT
tcp        1      0 ::ffff:172.18.11.4:50750    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36192    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36215    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36211    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:57820    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36213    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java           
tcp        1      0 ::ffff:172.18.11.4:36159    ::ffff:172.18.11.8:3306     CLOSE_WAIT  4203/java 

等...

运行Tomcat 5.5和Mysql 5.5的CentOS 6.0。

2 个答案:

答案 0 :(得分:1)

始终致电socket.close()。另请参阅how to close JDBC resources properly every time

如果无法修复服务器,请添加以下行 到/etc/init.d/inetinit

/usr/sbin/ndd -set /dev/tcp tcp_close_wait_interval 1500
/usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 1500

并重新启动。根据{{​​3}}

或者,在Linux上,尝试http://www.experts-exchange.com/OS/Unix/Solaris/Q_20568402.htmltcpkill的一部分)或dsniff

答案 1 :(得分:0)

还有一些其他问题我现在找不到。但您可以尝试killcxcutter我找不到 cutter的链接,但它在debian repos中找到了。确保选择tcp连接杀手,而不是具有相同名称的单元测试框架。

更新:似乎有一个Windows版本wkillcx update2:感谢Xiong Chiamiov的切割链接