Return-Path: Delivered-To: apmail-jakarta-httpclient-dev-archive@www.apache.org Received: (qmail 33842 invoked from network); 9 Aug 2006 16:40:16 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 9 Aug 2006 16:40:16 -0000 Received: (qmail 39580 invoked by uid 500); 9 Aug 2006 16:40:16 -0000 Delivered-To: apmail-jakarta-httpclient-dev-archive@jakarta.apache.org Received: (qmail 39358 invoked by uid 500); 9 Aug 2006 16:40:15 -0000 Mailing-List: contact httpclient-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "HttpClient Project" Reply-To: "HttpClient Project" Delivered-To: mailing list httpclient-dev@jakarta.apache.org Received: (qmail 39347 invoked by uid 99); 9 Aug 2006 16:40:14 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Aug 2006 09:40:14 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (asf.osuosl.org: local policy) Received: from [195.186.19.66] (HELO mail22.bluewin.ch) (195.186.19.66) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Aug 2006 09:40:14 -0700 Received: from [192.168.0.2] (83.77.188.23) by mail22.bluewin.ch (Bluewin 7.3.110.2) id 449255C700AB0E8C for httpclient-dev@jakarta.apache.org; Wed, 9 Aug 2006 16:39:53 +0000 Subject: [Fwd: RE: MultithreadedConnectionManager pooling strategy] From: Oleg Kalnichevski To: HttpClient Project Content-Type: text/plain; charset=ISO-8859-1 Date: Wed, 09 Aug 2006 18:39:51 +0200 Message-Id: <1155141592.11303.5.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Folks, The message I am forwarding was sent to the HttpClient user list a while ago. I think the changes proposed by Balazs are very reasonable. Unfortunately Balazs never submitted the patch and did not return emails I had sent him off-list. Nonetheless, I think we should consider changing MultithreadedConnectionManager's behavior as proposed by Balazs and include those changes into 3.1-beta1 Mike, what do you think? Oleg -------- Forwarded Message -------- From: SZ�CS Balazs Reply-To: HttpClient User Discussion To: 'HttpClient User Discussion' Subject: RE: MultithreadedConnectionManager pooling strategy Date: Mon, 15 May 2006 15:26:08 +0200 Hello, I made two changes to the HttpClient code: 1) in the class ConnectionPool in the method getFreeConnection( ... ) I changed freeConnections.removeFirst() to freeConnections.removeLast(). Now the container for free connections behaves as a stack rather than a queue. 2) additionally I changed the IdleConnectionTimeoutThread, in the run() method I added connectionManager.deleteClosedConnections() so that the pool size is maintained correctly. What do you think? Balazs -----Original Message----- From: Oleg Kalnichevski @DSI Sent: Donnerstag, 04. Mai 2006 18:07 To: HttpClient User Discussion Subject: Re: MultithreadedConnectionManager pooling strategy On Thu, 2006-05-04 at 18:00 +0200, SZ�CS Balazs wrote: > Hello, > > I'm using HttpClient 3.0-rc4, and I have a question about the connection > pooling strategy of MultithreadedConnectionManager. The reason for that is > that I use an IdleConnectionTimeoutThread (runs every 60 secs, using a > timeout of 60 secs) configured with a MultithreadedConnectionManager, and > idle connections don't seem to get closed by the > IdleConnectionTimeoutThread. However, on a long time span (overnight) the > pool size decreases, but I would expect a quicker reaction, when my > application is not unter heavy load. > > I've taken a look at the source of MultithreadedConnectionManager, and I > realized, that free connections are stored in a linked list. On demand the > next free connection is taken from the BEGINNING of the list, while after > usage the connection is put back to the END of the list. This seems to me a > round robin behavior, and it might prevent connections reaching the > predefined age for being recognized as idle. If there is some load, each > free connection will be used, instead of just using a few of them, and > letting the rest age. > > Does that make any sense? > Balazs, Yes, it does. Please file a bug report in Bugzilla. Feel free to provide a patch for the problem. We love patches ;-) Oleg > Thank you! > > Balazs --------------------------------------------------------------------- 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-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org