|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
public class ThreadSafeClientConnManager
Manages a pool of client connections
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.
The following parameters can be used to customize the behavior of this class:
ConnPerRoute
,
ConnPerRouteBean
Field Summary | |
---|---|
protected AbstractConnPool |
connectionPool
The pool of connections being managed. |
protected ClientConnectionOperator |
connOperator
The operator for opening and updating connections. |
protected SchemeRegistry |
schemeRegistry
The schemes supported by this connection manager. |
Constructor Summary | |
---|---|
ThreadSafeClientConnManager(HttpParams params,
SchemeRegistry schreg)
Creates a new thread safe connection manager. |
Method Summary | |
---|---|
void |
closeExpiredConnections()
Closes all expired connections in the pool. |
void |
closeIdleConnections(long idleTimeout,
TimeUnit tunit)
Closes idle connections in the pool. |
protected ClientConnectionOperator |
createConnectionOperator(SchemeRegistry schreg)
Hook for creating the connection operator. |
protected AbstractConnPool |
createConnectionPool(HttpParams params)
Hook for creating the connection pool. |
protected void |
finalize()
|
int |
getConnectionsInPool()
Gets the total number of pooled connections. |
int |
getConnectionsInPool(HttpRoute route)
Gets the total number of pooled connections for the given route. |
SchemeRegistry |
getSchemeRegistry()
Obtains the scheme registry used by this manager. |
void |
releaseConnection(ManagedClientConnection conn,
long validDuration,
TimeUnit timeUnit)
Releases a connection for use by others. |
ClientConnectionRequest |
requestConnection(HttpRoute route,
Object state)
Returns a new ClientConnectionRequest , from which a
ManagedClientConnection can be obtained or the request can be
aborted. |
void |
shutdown()
Shuts down this connection manager and releases allocated resources. |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final SchemeRegistry schemeRegistry
protected final AbstractConnPool connectionPool
protected final ClientConnectionOperator connOperator
Constructor Detail |
---|
public ThreadSafeClientConnManager(HttpParams params, SchemeRegistry schreg)
params
- the parameters for this manager.schreg
- the scheme registry.Method Detail |
---|
protected void finalize() throws Throwable
finalize
in class Object
Throwable
protected AbstractConnPool createConnectionPool(HttpParams params)
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 question
public 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
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |