ClientConnectionManagerPoolingHttpClientConnectionManager@Contract(threading=SAFE_CONDITIONAL) @Deprecated public class ThreadSafeClientConnManager extends java.lang.Object implements ClientConnectionManager
OperatedClientConnection
and is able to service connection requests from multiple execution threads.
Connections are pooled on a per route basis. A request for a route which
already the manager has persistent connections for available in the pool
will be services by leasing a connection from the pool rather than
creating a brand new connection.
ThreadSafeClientConnManager maintains a maximum limit of connection on a per route basis and in total. Per default this implementation will create no more than than 2 concurrent connections per given route and no more 20 connections in total. For many real-world applications these limits may prove too constraining, especially if they use HTTP as a transport protocol for their services. Connection limits, however, can be adjusted using HTTP parameters.
| Modifier and Type | Field | Description |
|---|---|---|
protected AbstractConnPool |
connectionPool |
Deprecated.
|
protected ClientConnectionOperator |
connOperator |
Deprecated.
The operator for opening and updating connections.
|
protected ConnPerRouteBean |
connPerRoute |
Deprecated.
|
protected ConnPoolByRoute |
pool |
Deprecated.
The pool of connections being managed.
|
protected SchemeRegistry |
schemeRegistry |
Deprecated.
The schemes supported by this connection manager.
|
| Constructor | Description |
|---|---|
ThreadSafeClientConnManager() |
Deprecated.
|
ThreadSafeClientConnManager(SchemeRegistry schreg) |
Deprecated.
Creates a new thread safe connection manager.
|
ThreadSafeClientConnManager(SchemeRegistry schreg,
long connTTL,
java.util.concurrent.TimeUnit connTTLTimeUnit) |
Deprecated.
Creates a new thread safe connection manager.
|
ThreadSafeClientConnManager(SchemeRegistry schreg,
long connTTL,
java.util.concurrent.TimeUnit connTTLTimeUnit,
ConnPerRouteBean connPerRoute) |
Deprecated.
Creates a new thread safe connection manager.
|
ThreadSafeClientConnManager(org.apache.http.params.HttpParams params,
SchemeRegistry schreg) |
Deprecated.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
closeExpiredConnections() |
Deprecated.
Closes all expired connections in the pool.
|
void |
closeIdleConnections(long idleTimeout,
java.util.concurrent.TimeUnit tunit) |
Deprecated.
Closes idle connections in the pool.
|
protected ClientConnectionOperator |
createConnectionOperator(SchemeRegistry schreg) |
Deprecated.
Hook for creating the connection operator.
|
protected ConnPoolByRoute |
createConnectionPool(long connTTL,
java.util.concurrent.TimeUnit connTTLTimeUnit) |
Deprecated.
Hook for creating the connection pool.
|
protected AbstractConnPool |
createConnectionPool(org.apache.http.params.HttpParams params) |
Deprecated.
(4.1) use #createConnectionPool(long, TimeUnit))
|
protected void |
finalize() |
Deprecated.
|
int |
getConnectionsInPool() |
Deprecated.
Gets the total number of pooled connections.
|
int |
getConnectionsInPool(HttpRoute route) |
Deprecated.
Gets the total number of pooled connections for the given route.
|
int |
getDefaultMaxPerRoute() |
Deprecated.
|
int |
getMaxForRoute(HttpRoute route) |
Deprecated.
|
int |
getMaxTotal() |
Deprecated.
since 4.1
|
SchemeRegistry |
getSchemeRegistry() |
Deprecated.
Obtains the scheme registry used by this manager.
|
void |
releaseConnection(ManagedClientConnection conn,
long validDuration,
java.util.concurrent.TimeUnit timeUnit) |
Deprecated.
Releases a connection for use by others.
|
ClientConnectionRequest |
requestConnection(HttpRoute route,
java.lang.Object state) |
Deprecated.
Returns a new
ClientConnectionRequest, from which a
ManagedClientConnection can be obtained or the request can be
aborted. |
void |
setDefaultMaxPerRoute(int max) |
Deprecated.
|
void |
setMaxForRoute(HttpRoute route,
int max) |
Deprecated.
|
void |
setMaxTotal(int max) |
Deprecated.
since 4.1
|
void |
shutdown() |
Deprecated.
Shuts down this connection manager and releases allocated resources.
|
protected final SchemeRegistry schemeRegistry
protected final AbstractConnPool connectionPool
protected final ConnPoolByRoute pool
protected final ClientConnectionOperator connOperator
protected final ConnPerRouteBean connPerRoute
public ThreadSafeClientConnManager(SchemeRegistry schreg)
schreg - the scheme registry.public ThreadSafeClientConnManager()
public ThreadSafeClientConnManager(SchemeRegistry schreg, long connTTL, java.util.concurrent.TimeUnit connTTLTimeUnit)
schreg - the scheme registry.connTTL - max connection lifetime, <=0 implies "infinity"connTTLTimeUnit - TimeUnit of connTTLpublic ThreadSafeClientConnManager(SchemeRegistry schreg, long connTTL, java.util.concurrent.TimeUnit connTTLTimeUnit, ConnPerRouteBean connPerRoute)
schreg - the scheme registry.connTTL - max connection lifetime, <=0 implies "infinity"connTTLTimeUnit - TimeUnit of connTTLconnPerRoute - mapping of maximum connections per route,
provided as a dependency so it can be managed externally, e.g.
for dynamic connection pool size management.@Deprecated
public ThreadSafeClientConnManager(org.apache.http.params.HttpParams params,
SchemeRegistry schreg)
ThreadSafeClientConnManager(SchemeRegistry)params - the parameters for this manager.schreg - the scheme registry.protected void finalize()
throws java.lang.Throwable
finalize in class java.lang.Objectjava.lang.Throwable@Deprecated protected AbstractConnPool createConnectionPool(org.apache.http.params.HttpParams params)
protected ConnPoolByRoute createConnectionPool(long connTTL, java.util.concurrent.TimeUnit connTTLTimeUnit)
protected ClientConnectionOperator createConnectionOperator(SchemeRegistry schreg)
DefaultClientConnectionOperator.schreg - the scheme registry.public SchemeRegistry getSchemeRegistry()
ClientConnectionManagergetSchemeRegistry in interface ClientConnectionManagernullpublic ClientConnectionRequest requestConnection(HttpRoute route, java.lang.Object state)
ClientConnectionManagerClientConnectionRequest, from which a
ManagedClientConnection can be obtained or the request can be
aborted.requestConnection in interface ClientConnectionManagerpublic void releaseConnection(ManagedClientConnection conn, long validDuration, java.util.concurrent.TimeUnit timeUnit)
ClientConnectionManagerreleaseConnection in interface ClientConnectionManagerconn - the connection to releasevalidDuration - the duration of time this connection is valid for reusetimeUnit - the unit of time validDuration is measured inClientConnectionManager.closeExpiredConnections()public void shutdown()
ClientConnectionManagershutdown in interface ClientConnectionManagerpublic int getConnectionsInPool(HttpRoute route)
route - the route in questionpublic int getConnectionsInPool()
public void closeIdleConnections(long idleTimeout,
java.util.concurrent.TimeUnit tunit)
ClientConnectionManagercloseIdleConnections in interface ClientConnectionManageridleTimeout - the idle time of connections to be closedtunit - the unit for the idletimeClientConnectionManager.closeExpiredConnections()public void closeExpiredConnections()
ClientConnectionManagercloseExpiredConnections in interface ClientConnectionManagerpublic int getMaxTotal()
public void setMaxTotal(int max)
public int getDefaultMaxPerRoute()
public void setDefaultMaxPerRoute(int max)
public int getMaxForRoute(HttpRoute route)
public void setMaxForRoute(HttpRoute route, int max)