On Wed, 2007-11-14 at 15:04 -0800, Pankaj Arora wrote: > Hi, > It looks like there is some confusion. > I am doing HttpClient client = getClientInstance(); > Client.exceuteMethod()l > So each time getClientInsatnce is called closeIdleconnections(20*1000) will > be called.
That means idle connections stay in the CLOSE_WAIT state all the time until #getClientInsatnce() is invoked. You may actually want to close idle connections after having completed a unit of work not before. > Also request evry 1 minute is one use case I am facing problem with. I have > many more use cases. > > Last, I think closeIdleConnections don't close the idle Connections which are > not registered with Idle Connection Handler. > All connections managed by the MultiThreadedHttpConnectionManager are supposed to get registered with the idle connection handler automatically. > I thought calling multithreadedconnectionmanger.closeidleConnections(20 * > 1000) will close all the idle connections which were idle for more than 2-0 > sec. but looks like you have to register connection with > idleConnectionhandler for it to be closed. > > > Am I right? > Not quite. Oleg > Thanks, > Pankaj Arora > > > > -----Original Message----- > From: Ortwin Glück [mailto:[EMAIL PROTECTED] > Sent: Wednesday, November 14, 2007 2:17 PM > To: HttpComponents Project > Subject: Re: Close_Wait problem > > > > Pankaj Arora wrote: > > Hi, > > I am using a single instance of Http Client. I have implemented using a > > singleton and each time a method is invoked something like this happens. > > > > public static HttpClient getClientInstance(){ > > HttpSingletonHolder.connectionManager.closeIdleConnections(20 * > > 1000); > > return HttpSingletonHolder.client; > > } > > > > Client.executeMethod(); > > > > > > I was still facing close_Wait problem. So I added > > public void releaseConnection(HttpConnection conn) { > > > > conn.close(); > > super.releaseConnection(conn); > > } > > > > in my MultithreadedConnectionManager. > > > > Strangely still see close_wait on Http. My use cases involves invoking > > server every one minute in a while loop and problem happens every 14-15 hrs. > > > > Any suggestions? > > > > Thanks, > > Pankaj Arora > > Pankaj, > > As I said, there is no active eviction. That means the idle connection are > closed when and only when you call closeIdleConnections(). You should do this > periodically in a Thread. In pseudo code that is: > > new Thread() { > public void run() { > while (!Thread.interrupted()) { > HttpSingletonHolder.connectionManager.closeIdleConnections(20 * 1000); > Thread.sleep(20*1000); > } > } > > }.start(); > > If you are only making one call every minute I don't see why you are using the > MultithreadedConnectionManager at all. Just create a new local HttpClient > instance each time, that's it. There is no point in keeping the instance > around > in a singleton if you use it so rarely. > > Odi > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
