[ 
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]

Reply via email to