2011-06-22 108 views
0

我在生产服务器上看到了一些CLOSE_WAIT状态的连接,并且有几个问题。请指教。CLOSE_WAIT状态问题

  1. 我知道Windows注册表有以下参数:

TcpTimedWaitDelay的HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\ TCPIP \参数

根据微软的东西(http://social.technet.microsoft.com/Forums/en-US/windowsserver2008r2networking/thread/4288d218-fbf9-4489-b869-384a05dea83d/),TIME_WAIT的默认值是4分钟。我在30秒内设置了该值,但看起来没有任何变化。而且,即使在4分钟后CLOSE_WAIT连接仍然存在。

我的问题是我如何改变TIME_WAIT的值,并看到它的行动?我应该重新启动服务器吗?

  1. 是否有任何其他设置来控制Windows环境中的CLOSE_WAIT状态?

问候, 西里尔

+3

CLOSE_WAIT!= TIME_WAIT – ninjalj

+0

谢谢,我知道这一点。 TcpTimedWaitDelay与TIME_WAIT有关,而TIME_WAIT与CLOSE_WAIT有关。不是吗? –

+2

不,它们是完全不同的状态,请参阅RFC793第23页中的状态图:http://www.faqs.org/rfcs/rfc793.html – ninjalj

回答

2

你混淆CLOSE_WAITTIME_WAIT。他们不一样。

看到这里:http://www.serverframework.com/asynchronousevents/2011/01/time-wait-and-its-design-implications-for-protocols-and-scalable-servers.html关于TIME_WAIT的一些细节,以及你为什么不想缩短超时时间。

而且在这里看到:http://www.sunmanagers.org/pipermail/summaries/2006-January/007068.html这里:http://blogs.msdn.com/b/spike/archive/2008/10/09/tcp-connections-hanging-in-the-close-wait-and-fin-wait-2-state.aspx的详细信息,所以你可能会收集套接字停留在CLOSE_WAIT - 总之,你可能没有正确关闭您的插座。

+1

对等体已关闭,本地应用程序尚未关闭。 – EJP

+0

感谢您的纠正,我已经编辑了相应的答案 –

5

CLOSE_WAIT表示对等方已关闭连接,但您没有。操作系统正在等待(本地应用程序)关闭它。

太近了。某处或其他你错过了。

0

我会建议你使用Spring WS,因为我在我的项目中面临同样的问题,我切换到Spring Web服务比我的问题解决。

请看下面的代码,

<bean id="viewCustomerInfo" 
class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean" 
p:serviceInterface="com.javaplex.CustomerInfoInterface" 
p:wsdlDocumentUrl="http://127.0.0.1:8080/portal/CustomerInfoPort?wsdl" 
p:namespaceUri="http://ws.customergen.com/" p:serviceName="CustomerInfo" 
p:portName="CustomerInfoPort"> 

下面是完整的文章如何设置基于弹簧豆这给你的最佳性能。

http://www.javaplex.com/spring-jax-ws-client-for-best-performance/

+0

请清楚解释这是如何解决CLOSE_WAIT问题的。 – EJP