You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Oleg Kalnichevski <ol...@apache.org> on 2005/10/25 22:01:30 UTC
RE: [HttpClient] Number of open sockets increase on session bean
redeployment
On Tue, 2005-10-25 at 11:24 -0400, Tom Zaranek wrote:
> Thanks, the shutdown did the trick on ejbRemove. The sockets will close
> under 2 or so minutes on application termination - this is good enough.
>
> Not sure about the threading issue. It reminds me of the fact that one
> should not access the file system from EJBs but I violate that rule too.
> For now it will have to do.
>
> Thanks for your time.
>
> Tom
>
Here's my piece of advise: wrap an instance of HttpClient with a
single-treaded connection manager into a stateless session bean and let
the EJB container do synchronization and pooling for you.
Oleg
>
> -----Original Message-----
> From: Oleg Kalnichevski [mailto:olegk@apache.org]
> Sent: October 12, 2005 6:10 AM
> To: httpclient-user@jakarta.apache.org
> Subject: Re: [HttpClient] Number of open sockets increase on session
> bean redeployment
>
>
> On Tue, Oct 11, 2005 at 04:57:41PM -0400, Tom Zaranek wrote:
> > I am using the MultiThreadedHttpConnectionManager, reuse HttpClient
> > and do a releaseConnection() on POST method complete on finally in a
> > try-catch-finally block from within a stateless session EJB. When
> > reading the response sent by the post method, I
> > getResponseBodyAsString().
> >
> > It appears that the number of sockets opens up to the
> > MAX_SOCKETS_PER_HOST_CONNECTIONS given high enough load. When I
> > redeploy the application (ear file), however, the sockets stay open
> > and additional MAX_SOCKETS_PER_HOST_CONNECTIONS will be created under
> > the same load. If the application server gets restarted, all of the
> > socket connections will be dropped. Note that the connections
> > initially opened should stay open since they are set to persist. But
> > on redeployment I would expect that the previously opened sockets
> > would close.
> >
> > Can someone explain/give a solution to stop the increase of the number
>
> > of sockets after each redeployment? It almost appears that the
> > Connection Manager does not get destroyed on application redepolyment
> > which I wonder that it makes sense. Any help would be appreciated.
> >
> > Tom
> >
>
> Tom,
>
> First off, you SHOULD not be using MultiThreadedHttpConnectionManager in
> EJBs because EJBs MAY not create and manage threads [1]
>
> If you are absolutely sure you have to violate EJB restrictions,
> please make sure you call MultiThreadedHttpConnectionManager#shutdown
> on application shutdown to ensure that all active connections are
> closed
>
> Hope this helps,
>
> Oleg
>
> [1] http://java.sun.com/blueprints/qanda/ejb_tier/restrictions.html
>
>
>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail:
> > httpclient-user-help@jakarta.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org