hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: Threads sometimes wait for unnecessary ~1s to access connections in pool for HttpClient 4.1.1
Date Thu, 30 Jun 2011 13:55:16 GMT
On Thu, 2011-06-30 at 06:27 -0700, bnijjhar wrote:
> Hi Oleg
> The reason for having 1 connection per route and 2 threads created in my
> test is to perform detailed analysis of what happens, then see whether it
> scales up. Obviously harder to debug with more than a few
> threads/connections. I would expect the first thread to create the
> connection, take x ms, then release the connection to the second thread,
> which takes a further y ms to execute ...
> 
> I have uploaded sanitized full wire and context log (debug level) with final
> thread times - note the TSCCM 'shutting down' statement, not sure why ...
> anyway it might not be relevant. 
> 
> 

Thread-1 gets a connection immediately as it has been released by
Thread-2. Released by Thread-2 at (13:57:35,595), leased by Thread-1 at
(13:57:35,595) 

2011-06-30 13:57:35,595 Thread-2 DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Pooling connection
[HttpRoute[{}->http://RemoteHost:7001]][null]; keep alive indefinitely
2011-06-30 13:57:35,595 Thread-2 DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Notifying thread
waiting on pool [HttpRoute[{}->http://RemoteHost:7001]]
2011-06-30 13:57:35,595 Thread-1 DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute  -
[HttpRoute[{}->http://RemoteHost:7001]] total kept alive: 1, total
issued: 0, total allocated: 1 out of 20
2011-06-30 13:57:35,595 Thread-1 DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Getting free
connection [HttpRoute[{}->http://RemoteHost:7001]][null]

A significant amount of time has been spent consuming the response
content for some reason. See for yourself. The response content was read
into the session buffer at (13:57:35,611), however the connection was
released only at (13:57:36,892) 

2011-06-30 13:57:35,611 Thread-1 DEBUG org.apache.http.wire  - <<
"<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"></soapenv:Envelope>"
2011-06-30 13:57:36,892 Thread-1 DEBUG
org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager  - Released
connection is reusable.
2011-06-30 13:57:36,892 Thread-1 DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Releasing connection
[HttpRoute[{}->http://RemoteHost:7001]][null]
 
I suspect the time gets wasted somewhere in your code. So far I see no
evidence of HttpClient doing something wrong or being slow.

Oleg


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Mime
View raw message