WS客户端中的许多TIME_WAIT连接

时间:2013-08-30 11:56:28

标签: java web-services tcp glassfish jax-ws

我正在开发一个JAX-WS Web服务客户端。此客户端是部署在Glassfish 3.2.1服务器上的Web应用程序的一部分,并从servlet调用。操作系统是Windows Server 2003,我使用JDK 6.它会在几分钟内向部署在其他计算机上的Web服务发送数百个请求。

问题是客户端在TIME_WAIT状态下生成越来越多的连接(我可以在netstat中看到它)。我认为启用“保持活动”选项可以解决问题,但是没有发生 - WS客户端打开新连接而不是重用TIME_WAIT状态的连接。

我试图在Glassfish中调整“maxConnections”选项,但它没有帮助。我也尝试过使用相同结果的JDK 7。

是否可以在客户端请求完成后立即关闭连接,或者在TIME_WAIT状态下重用现有连接?

1 个答案:

答案 0 :(得分:1)

根据Microsoft知识库文章“TCP连接状态和Netstat输出”(http://support.microsoft.com/kb/137984),在客户端断开连接后,关闭的连接保留在TIMED_WAIT中是完全正常的。这是操作系统清理过程的一部分。超级用户(https://superuser.com/questions/173535/what-are-close-wait-and-time-wait-states)有一个相当不错的解释。