hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sujith Joseph" <sujithjos...@gmail.com>
Subject Re: Regarding closing of idle connections for non-reusable / non-threaded httpClient instances to ensure complete connection closure
Date Fri, 16 May 2008 03:27:47 GMT
Hi Oleg,
           Thanks for your reply. I really appreciate your help. I have
couple of more questions on this.

 I am currently using httpclient 3.0 library.
SimpleConnectionManager.shutdown () method is not available in 3.0 libs. if
I am continuing to use these libraries in my application, can I use
httpClient.getConnectionManager(). closeIdleConnections(1) to close of
connections?.

Would setting small values like 1 millisecond for idle connection timeout be
an overhead to the JVM and impact performance?
Would this act as a replacement for SimpleConnectionManager.shutdown()?

Based on your reply, I assume that you recommend re-using the same
httpClient instance for all http requests, instead of creating httpClient
instances for each http requests, even if we are not using
MultiThreadedConnectionManager. Is it because, that the latter approach has
an overhead of creating/closing more connections and no re-use of
connections and thereby giving less throughput?.


Are you aware of any issues in using HttpClient 3.1 libraries in Websphere
Application Server (WAS) 5.1. ? I have not tried this yet. But if you
already know this, I think, I could save some testing time .


Thanks,
Sujith


On Thu, May 15, 2008 at 12:10 PM, Oleg Kalnichevski <olegk@apache.org>
wrote:

> On Tue, 2008-05-13 at 17:36 -0700, Sujith Joseph wrote:
> > Hi,
> >      I would like to know whether it is necessary to invoke
> > httpClient.getConnectionManager(). closeIdleConnections(1000), after
> > creating
> > an httpClient (httpClient = new HttpClient()), creating an httpmethod,
> > executing the httpmethod  and performing method.releaseConnection(), to
> > ensure that the http connections are properly closed, since I am creating
> an
> > httpClient instance for each and every http request (since I am not using
> > MultiThreadedConnectionManager).
>
> That basically means you are telling HttpClient to close connections
> that have been idle for 1000 ms. I am not sure that is what you want.
>
> >
> > If I am creating a httpClient instance (without using
> > MutliThreadedConnectionManager), Does a SimpleHttpConnectionManager gets
> > created for each httpClient creation behind the scenes.
> >
>
> Yes, it does.
>
> > Can I perform a type cast like this
> > ((SimpleHttpConnectionManager)httpClient.getConnectionManager).shutdown()
> to
> > ensure complete release of connections.
> >
>
> Yes, you can. Moreover, you really should.
>
> >  If I am not using the httpClient instance anymore after executing a http
> > method request, do you recommend closing off idle connections / shut down
> > ConnectionManager, to avoid creation of too many open sockets in
> CLOSE_WAIT
> > state.
> >
>
> You _should_ shut down the connection manager if you no longer need it
> and want to ensure it releases all resources it currently holds
>
> > Can I re-use the same httpClient instance to perform http method
> executions,
> > if I am not using a multi-threaded Connection Manager?
> >
>
> Absolutely.
>
> Oleg
>
> >
> > Thanks,
> > Sujith
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message