You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "stefano gristina (JIRA)" <ji...@apache.org> on 2014/06/17 17:06:08 UTC
[jira] [Created] (HTTPCLIENT-1518) In 4.3.2/3 (running on Sun
Solaris 10) during stress test connections go in close_wait
stefano gristina created HTTPCLIENT-1518:
--------------------------------------------
Summary: In 4.3.2/3 (running on Sun Solaris 10) during stress test connections go in close_wait
Key: HTTPCLIENT-1518
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1518
Project: HttpComponents HttpClient
Issue Type: Bug
Components: HttpClient
Affects Versions: 4.3.3, 4.3.2
Reporter: stefano gristina
Priority: Critical
Httplclient used is 4.3.2/3 inside servlet under tomcat 7 (jre 7). SO: Sun Solaris 10.
During stress test (after some hour)TCP connections to server go in close_wait.
bash-3.2$ netstat -an |grep 8010| grep CLOSE_WAIT
10.199.139.13.37055 10.199.139.1.8010 8760 0 49640 0 CLOSE_WAIT
10.199.139.13.37145 10.199.139.1.8010 8760 0 49640 0 CLOSE_WAIT
10.199.139.13.37140 10.199.139.1.8010 8760 0 49640 0 CLOSE_WAIT
10.199.139.13.37109 10.199.139.1.8010 8760 0 49640 0 CLOSE_WAIT
10.199.139.13.36798 10.199.139.1.8010 8760 0 49640 0 CLOSE_WAIT
10.199.139.13.37226 10.199.139.1.8010 8760 0 49640 0 CLOSE_WAIT
One only connection is active at the end. With one only TCP connection the performances are very low. Work around is to restart Tomcat.
Behaviour not acceptable.
The class IdleConnectionMonitorThread is used to close idle and expired tcp connections: not real effect.
Issue solved using httpclient 3.0.1.
Snippet of code:
init()
public void init(ServletConfig config) throws ServletException {
cm = new PoolingHttpClientConnectionManager();
cm.setDefaultMaxPerRoute(numOfConnectionTOADC);
// HttpClient client = new DefaultHttpClient(cm);
RequestConfig defaultRequestConfig = RequestConfig.custom()
.setSocketTimeout(socketTimeoutADC)
.setConnectTimeout(connectionTimeoutADC).build();
client = HttpClients.custom().setConnectionManager(cm).build();
idleConn=new IdleConnectionMonitorThread(cm);
idleConn.start();
}
protected void doGet(){
CloseableHttpResponse respon;
try {
respon = client.execute(req, context);
}
catch (Exception e) {
}
finally {
respon.close();
req.releaseConnection();
}
}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org