I tested this code using production traffic and the results are not
so good.
Ended up with a connection/memory leak. The jmap histogram of a
server in
this bad state is attached.
Also, I had some issues with one host, it used a keepalive with a
timeout=1.
It appears that the route pool filled up with connections. It also
appears
that when it closes an expired free connection that it is not
released back
into the pool... Here's the debug output showing the final
connection
allocation and the attempt to get a connection from a full pool.
It appears
that Freeing the connection puts it back on the Idle pool, but it
becomes
inaccessible for some reason.
2008-06-29 19:22:27,761 [http-80-55] DEBUG
org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager -
ThreadSafeClientConnManager.getConnection:
HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com], timeout =
50002008-06-29 19:22:27,761 [http-80-55] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Getting free
connection
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:27,761 [http-80-55] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Closing expired
free
connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]]
[null]
2008-06-29 19:22:27,761 [http-80-55] DEBUG
org.apache.http.impl.conn.DefaultClientConnection - Connection
closed
2008-06-29 19:22:27,761 [http-80-55] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - No free
connections
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:27,761 [http-80-55] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Available
capacity: 1
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:27,761 [http-80-55] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Creating new
connection
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]]
2008-06-29 19:22:27,761 [http-80-55] DEBUG
org.apache.http.impl.conn.DefaultClientConnection - Connection
closed
2008-06-29 19:22:27,818 [http-80-55] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Freeing connection
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:27,818 [http-80-55] DEBUG
org.apache.http.impl.conn.IdleConnectionHandler - Adding
connection at:
12147925478182008-06-29 19:22:27,818
[http-80-55] DEBUG org.apache.http.impl.conn.tsccm.ConnPoolByRoute -
Notifying no-one, there are no waiting threads
-----------------------------------------------
2008-06-29 19:22:29,274 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager -
ThreadSafeClientConnManager.getConnection:
HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com], timeout = 5000
2008-06-29 19:22:29,274 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Getting free
connection
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:29,274 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Closing expired
free
connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]]
[null]
2008-06-29 19:22:29,274 [http-80-26] DEBUG
org.apache.http.impl.conn.DefaultClientConnection - Connection
closed
2008-06-29 19:22:29,274 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - No free
connections
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:29,274 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Available
capacity: 0
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:29,274 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Need to wait for
connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]]
[null]
2008-06-29 19:22:29,331 [http-80-79] DEBUG
org.apache.http.impl.conn.DefaultClientConnection - Connection
shut down
2008-06-29 19:22:29,331 [http-80-79] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Freeing connection
[HttpRoute[{}->http://ads.socialmedia.com]][null]
2008-06-29 19:22:29,331 [http-80-79] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Notifying thread
waiting
on any pool
2008-06-29 19:22:29,331 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - No free
connections
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:29,331 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Available
capacity: 0
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:29,331 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Need to wait for
connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]]
[null]
2008-06-29 19:22:29,331 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - No free
connections
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:29,331 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Available
capacity: 0
[HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
2008-06-29 19:22:29,331 [http-80-26] DEBUG
org.apache.http.impl.conn.tsccm.ConnPoolByRoute - Need to wait for
connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]]
[null]
Size Count Class description
-------------------------------------------------------
684164112 558913 byte[]
492584016 2134710 char[]
209551728 4365661 java.util.concurrent.locks.ReentrantLock
$NonfairSync
209517696 4364952 java.util.concurrent.ConcurrentHashMap
$Segment
144470200 4364956 java.util.concurrent.ConcurrentHashMap
$HashEntry[]
101379880 2534497 java.lang.String
65693112 628849 java.lang.Object[]
47067200 588340 com.friend.data.UserAppBean
41467120 272810 java.util.concurrent.ConcurrentHashMap
$Segment[]
37081896 272661 org.apache.catalina.session.StandardSession
32830608 683971 java.util.HashMap$Entry
30965200 275343 java.util.Hashtable$Entry[]
24135760 603394 java.util.ArrayList
22612816 115641 java.util.HashMap$Entry[]
19871936 620998 java.util.Date
19642320 272810 java.util.concurrent.ConcurrentHashMap
18644208 224156 int[]
17608256 275129 java.util.Hashtable
14569296 303527 java.util.concurrent.ConcurrentHashMap
$HashEntry
13089600 272700 java.beans.PropertyChangeSupport
13054072 97229 * ConstMethodKlass
12340480 154256 org.apache.tomcat.util.buf.MessageBytes
11679960 97229 * MethodKlass
10593856 165529 org.apache.tomcat.util.buf.ByteChunk
10529104 10652 * ConstantPoolKlass
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]