PoolingHttpClientConnectionManager
@ThreadSafe @Deprecated public class ThreadSafeClientConnManager extends 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 and 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 and Description |
---|
ThreadSafeClientConnManager()
Deprecated.
|
ThreadSafeClientConnManager(HttpParams params,
SchemeRegistry schreg)
Deprecated.
|
ThreadSafeClientConnManager(SchemeRegistry schreg)
Deprecated.
Creates a new thread safe connection manager.
|
ThreadSafeClientConnManager(SchemeRegistry schreg,
long connTTL,
TimeUnit connTTLTimeUnit)
Deprecated.
Creates a new thread safe connection manager.
|
ThreadSafeClientConnManager(SchemeRegistry schreg,
long connTTL,
TimeUnit connTTLTimeUnit,
ConnPerRouteBean connPerRoute)
Deprecated.
Creates a new thread safe connection manager.
|
Modifier and Type | Method and Description |
---|---|
void |
closeExpiredConnections()
Deprecated.
Closes all expired connections in the pool.
|
void |
closeIdleConnections(long idleTimeout,
TimeUnit tunit)
Deprecated.
Closes idle connections in the pool.
|
protected ClientConnectionOperator |
createConnectionOperator(SchemeRegistry schreg)
Deprecated.
Hook for creating the connection operator.
|
protected AbstractConnPool |
createConnectionPool(HttpParams params)
Deprecated.
(4.1) use #createConnectionPool(long, TimeUnit))
|
protected ConnPoolByRoute |
createConnectionPool(long connTTL,
TimeUnit connTTLTimeUnit)
Deprecated.
Hook for creating the connection pool.
|
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,
TimeUnit timeUnit)
Deprecated.
Releases a connection for use by others.
|
ClientConnectionRequest |
requestConnection(HttpRoute route,
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, TimeUnit connTTLTimeUnit)
schreg
- the scheme registry.connTTL
- max connection lifetime, <=0 implies "infinity"connTTLTimeUnit
- TimeUnit of connTTLpublic ThreadSafeClientConnManager(SchemeRegistry schreg, long connTTL, 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(HttpParams params, SchemeRegistry schreg)
ThreadSafeClientConnManager(SchemeRegistry)
params
- the parameters for this manager.schreg
- the scheme registry.protected void finalize() throws Throwable
@Deprecated protected AbstractConnPool createConnectionPool(HttpParams params)
protected ConnPoolByRoute createConnectionPool(long connTTL, TimeUnit connTTLTimeUnit)
protected ClientConnectionOperator createConnectionOperator(SchemeRegistry schreg)
DefaultClientConnectionOperator
.schreg
- the scheme registry.public SchemeRegistry getSchemeRegistry()
ClientConnectionManager
getSchemeRegistry
in interface ClientConnectionManager
null
public ClientConnectionRequest requestConnection(HttpRoute route, Object state)
ClientConnectionManager
ClientConnectionRequest
, from which a
ManagedClientConnection
can be obtained or the request can be
aborted.requestConnection
in interface ClientConnectionManager
public void releaseConnection(ManagedClientConnection conn, long validDuration, TimeUnit timeUnit)
ClientConnectionManager
releaseConnection
in interface ClientConnectionManager
conn
- 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()
ClientConnectionManager
shutdown
in interface ClientConnectionManager
public int getConnectionsInPool(HttpRoute route)
route
- the route in questionpublic int getConnectionsInPool()
public void closeIdleConnections(long idleTimeout, TimeUnit tunit)
ClientConnectionManager
closeIdleConnections
in interface ClientConnectionManager
idleTimeout
- the idle time of connections to be closedtunit
- the unit for the idletime
ClientConnectionManager.closeExpiredConnections()
public void closeExpiredConnections()
ClientConnectionManager
closeExpiredConnections
in interface ClientConnectionManager
public 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)
Copyright © 1999–2013 The Apache Software Foundation. All rights reserved.