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]