[
https://issues.apache.org/jira/browse/HTTPCLIENT-1518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14064822#comment-14064822
]
Cservenak, Tamas commented on HTTPCLIENT-1518:
----------------------------------------------
Just to chime in, I _think_ this has to do something with keep alive and
_possibly_ some edge case about the duration of the keep alive (or misbehaving
remote server?). Like when remote tells to keep connection alive for 15 seconds
but closes it at 10th second?
Also, the keep alive strategy is here
https://github.com/sonatype/nexus-oss/blob/nexus-2.8.x/components/nexus-core/src/main/java/org/sonatype/nexus/apachehttpclient/NexusConnectionKeepAliveStrategy.java
> 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.2, 4.3.3
> 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: [email protected]
For additional commands, e-mail: [email protected]