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