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

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

Hey Oleg,

I'm pretty sure. Imagine a scenario where a user only wants to evict expired 
connections and does not want to evict idle connections. They would call 
HttpClientBuilder.evictExpiredConnections but under the hood as you say the 
maxIdleTime will default to 10 seconds and be used to evict idle connections. 
This default behaviour could be surprising to the user and it makes the if 
(maxIdleTimeMs > 0) condition in IdleConnectionEvictor redundant since 
maxIdleTimeMs can never be <= 0 because of the 10 second default.

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