httpClient urlConnection activemq CLOSE_WAIT

来源:互联网 发布:公安 软件代理加盟 编辑:程序博客网 时间:2024/06/04 20:06


CLOSE_WAIT 说明: http://blog.csdn.net/talent210/article/details/65434677


httpClient

httpClien使用不当会产生大量CLOSE_WAIT

解决方法:

一、 客户端主动关闭连接

1, 创建HTTPCLIENT时 使用关闭参数

HttpClient client = new HttpClient(new HttpClientParams(),new SimpleHttpConnectionManager(true) ); 


public SimpleHttpConnectionManager(boolean alwaysClose) {  
    super();  
    this.alwaysClose = alwaysClose;  
}  

2,在method.releaseConnection();之后加上 client.getHttpConnectionManager()).shutdown(); 
3,在method.releaseConnection();之后加上 client.getHttpConnectionManager().closeIdleConnections(0)


二、服务端主动关闭连接

method.setRequestHeader("Connection", "close");


HttpURLConnection 是否会出现close_wait?

当设置keepAlive=true时:
如果客户端调用HttpURLConnection.getInputSteam().close(), 然后又调用HttpURLConnection.disconnect(), 这样不会关闭Socket,此时Socket会被复用
如果客户端直接调用HttpURLConnection.disconnect(), InputSteam和Socket都会关闭


ActiveMQ

如果activeMQ 一直连接超时,而请求又多会出现大量CLOSE_WAIT



0 0