You can get the advantage of Pooled connections only if you maintain the client 
for longer time. Now for your use case where HttpClient is Singleton:
1. If there is no requirement to update number of connections, idle connection 
timeout or any settings related to pooled connections than there is no need to 
instantiate Httpcient again and Singleton Httpclient will work. For settings 
like connectiontimeout, sockettimeout - you can configure it at request level. 
Also if there is no connection leaks than Singleton Httpclient can run fore 
ever. 
2. If there is a frequent requirement where number of connections needs to be 
udpated than one solution can be - Have a watcher which detect change in 
properties or config and watcher will instantiate another HttpClient and flips 
it (atomically) with existing HttpClient. For any new connection request - new 
HttpClient will serve the request. You can keep the old httpclient for x time 
(to allow all previous request to complete) and than close all the connections. 
Watcher instead of waiting for config change can periodically (once every hour) 
can trigger above flips.
I would love to hear other possible solutions and designs.
Thanks,Jaikit 



     On Monday, May 18, 2015 8:00 PM, Mahendran Pirinthapan 
<mpirintha...@gmail.com> wrote:
   

 Hi all,

In one of our project we are using httpclient-4.1.1 (we have to stick with
this version for some reason) to send requests to a remote server. We are
having a long running production environment for this project and we can
not restart the server frequently.

Currently we are using the httpclient in singleton manner. That is, we are
using the same httpclient instance to handle all the request using
ThreadSafeClientConnManager. In our production environment there can be
hundreds of request parallel.

Now I would like to know what would be the recommended way to use the
httpclient. Using in singleton manner? or Creating new httpclient instance
for each request?

Kindly appreciate your recommendations.


Thanks & Regards,
M.Pirinthapan


<https://plus.google.com/u/0/+MahendranPirinthapan/about>
<http://lk.linkedin.com/in/pirinthapan>
<https://www.facebook.com/MahendranPrinthapan/about>


  

Reply via email to