On Wed, 2010-05-26 at 11:01 -0400, Brooks, Kenneth S wrote:
> Attaching 2 log snippets.
> 
> First is the httpclient log with log4j.logger.org.apache.http=TRACE, F as the 
> log4j setting. I've included the very last line of the wire trace from the 
> previous call.. just to give some conetext. I think what you are looking for 
> is right around: 2010-05-22 16:41:03,411
> 
> The second is our client logs, just to show when the call was attempted and 
> failed with the IllegalStateException.
> 
> FYI my idleconnectionhandler is running every 1000ms and evicting anything 
> older than 20,000ms.
> 

Ken

I took a cursory look at the log and even though I have not yet found
the cause of the race condition, I am at least pretty sure I know why it
has gone undetected for so long.

Your idle connection checks are waaaaay too aggressive. It is really
unnecessary to run the checks so often. Once a minute should be enough,
let alone every second. If you want to make sure persistent connections
do not get stale, you can simply instruct HttpClient to not re-use
connections that have been idle longer than, say, 20,000ms but actively
evict connections from the pool only once a minute or so.

The idle connection handler in your configuration puts unnecessary load
on the connection pool and degrades performance. 

Oleg


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to