我正在为我的连接池使用 ThreadSafeClientConnManager Apache HttpComponenets-Client4.1.1。
当我将连接释放回池时,我说:
cm.releaseConnection(client,-1,TimeUnit.SECONDS); cm.closeExpiredConnections(); cm.closeIdleConnections(20, TimeUnit.SECONDS);
[这里 cm 是 ThreadSafeClientConnManager 的对象] 并且如 javadoc releaseConnection(ManagedClientConnection conn, long validDuration,TimeUnit timeUnit) 中所述,将有效持续时间设置为 -ve (<=0) 值。
但是当我看到服务器日志时,我发现:
org.apache.http.impl.conn.DefaultClientConnection] 连接关闭 2011-08-17 14:12:48.992 DEBUG Other Thread-257 org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager 释放的连接不可重用。2011-08-17 14:12:48.992 调试其他线程 257 org.apache.http.impl.conn.tsccm.ConnPoolByRoute 释放连接 [HttpRoute[{}->http://server-name:port][null] 2011-08-17 14:12:48.992 调试其他线程 257 [org.apache.http.impl.conn.tsccm.ConnPoolByRoute] 通知没有人,没有等待线程 2011-08-17 14:12:48.993调试其他线程 257 [org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager] 关闭过期连接 2011-08-17 14:12:48.993 调试其他线程 257 [shaded.org.apache.http.impl.conn .tsccm.ConnPoolByRoute] 关闭过期连接 2011-08-17 14:12:48。
在这里,我在日志中看到“已释放的连接不可重用”这是否意味着“-1”没有使连接可重用并且连接已关闭而不是返回池?如果可以,任何人都可以建议我如何使其可重复使用。
提前致谢。