[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15931913#comment-15931913
 ] 

Liam Williams commented on HTTPCLIENT-1583:
-------------------------------------------

Hi,

I am taking a look at 
[HTTPCLIENT-1830|https://issues.apache.org/jira/browse/HTTPCLIENT-1830] and I 
noticed something strange in this commit:
git-svn-id: 
https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1643671 
13f79535-47bb-0310-9956-ffa450edef68

The `IdleConnectionEvictor` seems like it was designed to support either 
evicting either expired connections only (via 
`HttpClientBuilder.evictExpiredConnections`) or additionally evicting idle 
connections too (via `HttpClientBuilder.evictIdleConnections`).

Unfortunately, it seems that the functionality of evicting only expired 
connections has always been dead code, since the `HttpClientBuilder` will 
default the maxIdleTime to 10 seconds if only 
`HttpClientBuilder.evictExpiredConnections` is called and not 
`HttpClientBuilder.evictIdleConnections`.

Can you please clarify what the intended behaviour is?

Thanks,
Liam

> Add option to create a connection eviction thread for a non-shared connection 
> manager
> -------------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1583
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1583
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>    Affects Versions: 4.3.5
>            Reporter: yair ogen
>            Priority: Minor
>             Fix For: 4.4 Final
>
>
> In the tutorial:
> http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html, 
> section 2.5 Connection eviction policy - you explain how to clean-up 
> connections. Although I can argue against the design as without this if 
> server closes connections, my client gets many sockets stuck on CLOSE_WAIT - 
> adding this thread solves the CLOSE_WAIT issue. 
> However, I don't understand why you don't do this yourself if keep-alive is 
> set. I would expect the library to support such a thread. In the meanwhile, 
> it seems that if I use the default connection manager, I can't use 
> non-deprecated code to call :
> connMgr.closeExpiredConnections();
> and
> connMgr.closeIdleConnections(30, TimeUnit.SECONDS);
> This is because the only exposed API to get the default pooling connection 
> manager is by calling:
> httpClient.getConnectionManager(), which is deprecated. Javadoc suggests to 
> go to the builder (which I do use but not for creating connection pool as the 
> default is good enough for me) which is useless.
> So - how should one acquire a reference to the connection manager?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to