| 
 | ||||||||||
| 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 | connectionPoolThe pool of connections being managed. | 
| protected  ClientConnectionOperator | connOperatorThe operator for opening and updating connections. | 
| protected  SchemeRegistry | schemeRegistryThe 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 aManagedClientConnectioncan 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 ObjectThrowableprotected AbstractConnPool createConnectionPool(HttpParams params)
protected ClientConnectionOperator createConnectionOperator(SchemeRegistry schreg)
DefaultClientConnectionOperator.
schreg - the scheme registry.
public SchemeRegistry getSchemeRegistry()
ClientConnectionManager
getSchemeRegistry in interface ClientConnectionManagernull
public ClientConnectionRequest requestConnection(HttpRoute route,
                                                 Object state)
ClientConnectionManagerClientConnectionRequest, 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 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()
ClientConnectionManager
shutdown in interface ClientConnectionManagerpublic int getConnectionsInPool(HttpRoute route)
route - the route in question
public int getConnectionsInPool()
public void closeIdleConnections(long idleTimeout,
                                 TimeUnit tunit)
ClientConnectionManager
closeIdleConnections in interface ClientConnectionManageridleTimeout - the idle time of connections to be closedtunit - the unit for the idletimeClientConnectionManager.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 | |||||||||