Yep, seems to make sense.

Odi


Oleg Kalnichevski wrote:
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 <[EMAIL PROTECTED]>
Reply-To: HttpClient User Discussion
<httpclient-user@jakarta.apache.org>
To: 'HttpClient User Discussion' <httpclient-user@jakarta.apache.org>
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 <[EMAIL PROTECTED]>@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:
[EMAIL PROTECTED]
        For additional commands, e-mail:
[EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
[web]  http://www.odi.ch/
[blog] http://www.odi.ch/weblog/
[pgp]  key 0x81CF3416
       finger print F2B1 B21F F056 D53E 5D79 A5AF 02BE 70F5 81CF 3416

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to