Package org.apache.http.impl.conn.tsccm
Class ConnPoolByRoute
java.lang.Object
org.apache.http.impl.conn.tsccm.AbstractConnPool
org.apache.http.impl.conn.tsccm.ConnPoolByRoute
Deprecated.
A connection pool that maintains connections by route.
This class is derived from
MultiThreadedHttpConnectionManager
in HttpClient 3.x, see there for original authors. It implements the same
algorithm for connection re-use and connection-per-host enforcement:
- connections are re-used only for the exact same route
- connection limits are enforced per route rather than per host
poolLock in the base class,
not via synchronized methods.- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ConnPerRouteDeprecated.Connections per route lookupprivate final longDeprecated.private final TimeUnitDeprecated.protected final Queue<BasicPoolEntry>Deprecated.The list of free connectionsprotected final Set<BasicPoolEntry>Deprecated.References to issued connectionsprivate final org.apache.commons.logging.LogDeprecated.protected intDeprecated.protected intDeprecated.protected final ClientConnectionOperatorDeprecated.Connection operator for this poolprivate final LockDeprecated.protected final Map<HttpRoute,RouteSpecificPool> Deprecated.Map of route-specific poolsprotected booleanDeprecated.protected final Queue<WaitingThread>Deprecated.The list of WaitingThreads waiting for a connectionFields inherited from class org.apache.http.impl.conn.tsccm.AbstractConnPool
idleConnHandler, isShutDown, issuedConnections, refQueue -
Constructor Summary
ConstructorsConstructorDescriptionConnPoolByRoute(ClientConnectionOperator operator, ConnPerRoute connPerRoute, int maxTotalConnections) Deprecated.Creates a new connection pool, managed by route.ConnPoolByRoute(ClientConnectionOperator operator, ConnPerRoute connPerRoute, int maxTotalConnections, long connTTL, TimeUnit connTTLTimeUnit) Deprecated.ConnPoolByRoute(ClientConnectionOperator operator, org.apache.http.params.HttpParams params) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcloseConnection(BasicPoolEntry entry) Deprecated.voidDeprecated.voidcloseIdleConnections(long idletime, TimeUnit timeUnit) Deprecated.Closes idle connections.protected BasicPoolEntrycreateEntry(RouteSpecificPool rospl, ClientConnectionOperator op) Deprecated.Creates a new pool entry.protected Queue<BasicPoolEntry>Deprecated.Creates the queue forfreeConnections.protected Map<HttpRoute,RouteSpecificPool> Deprecated.Creates the map forrouteToPool.protected Queue<WaitingThread>Deprecated.Creates the queue forwaitingThreads.voidDeprecated.Deletes all entries for closed connections.protected voiddeleteEntry(BasicPoolEntry entry) Deprecated.Deletes a given pool entry.protected voidDeprecated.Delete an old, free pool entry to make room for a new one.voidfreeEntry(BasicPoolEntry entry, boolean reusable, long validDuration, TimeUnit timeUnit) Deprecated.Returns an entry into the pool.intDeprecated.intgetConnectionsInPool(HttpRoute route) Deprecated.protected BasicPoolEntrygetEntryBlocking(HttpRoute route, Object state, long timeout, TimeUnit timeUnit, WaitingThreadAborter aborter) Deprecated.Obtains a pool entry with a connection within the given timeout.protected BasicPoolEntrygetFreeEntry(RouteSpecificPool rospl, Object state) Deprecated.If available, get a free pool entry for a route.protected LockgetLock()Deprecated.intDeprecated.since 4.1protected RouteSpecificPoolgetRoutePool(HttpRoute route, boolean create) Deprecated.Get a route-specific pool of available connections.protected voidhandleLostEntry(HttpRoute route) Deprecated.protected RouteSpecificPoolnewRouteSpecificPool(HttpRoute route) Deprecated.Creates a new route-specific pool.protected WaitingThreadnewWaitingThread(Condition cond, RouteSpecificPool rospl) Deprecated.Creates a new waiting thread.protected voidDeprecated.Notifies a waiting thread that a connection is available.requestPoolEntry(HttpRoute route, Object state) Deprecated.Returns a newPoolEntryRequest, from which aBasicPoolEntrycan be obtained, or the request can be aborted.voidsetMaxTotalConnections(int max) Deprecated.since 4.1voidshutdown()Deprecated.Shuts down this pool and all associated resources.Methods inherited from class org.apache.http.impl.conn.tsccm.AbstractConnPool
closeConnection, enableConnectionGC, getEntry, handleReference
-
Field Details
-
log
private final org.apache.commons.logging.Log logDeprecated. -
poolLock
Deprecated. -
operator
Deprecated.Connection operator for this pool -
connPerRoute
Deprecated.Connections per route lookup -
leasedConnections
Deprecated.References to issued connections -
freeConnections
Deprecated.The list of free connections -
waitingThreads
Deprecated.The list of WaitingThreads waiting for a connection -
routeToPool
Deprecated.Map of route-specific pools -
connTTL
private final long connTTLDeprecated. -
connTTLTimeUnit
Deprecated. -
shutdown
protected volatile boolean shutdownDeprecated. -
maxTotalConnections
protected volatile int maxTotalConnectionsDeprecated. -
numConnections
protected volatile int numConnectionsDeprecated.
-
-
Constructor Details
-
ConnPoolByRoute
public ConnPoolByRoute(ClientConnectionOperator operator, ConnPerRoute connPerRoute, int maxTotalConnections) Deprecated.Creates a new connection pool, managed by route.- Since:
- 4.1
-
ConnPoolByRoute
public ConnPoolByRoute(ClientConnectionOperator operator, ConnPerRoute connPerRoute, int maxTotalConnections, long connTTL, TimeUnit connTTLTimeUnit) Deprecated.- Since:
- 4.1
-
ConnPoolByRoute
@Deprecated public ConnPoolByRoute(ClientConnectionOperator operator, org.apache.http.params.HttpParams params) Deprecated.Creates a new connection pool, managed by route.
-
-
Method Details
-
getLock
Deprecated. -
createFreeConnQueue
Deprecated.Creates the queue forfreeConnections. Called once by the constructor.- Returns:
- a queue
-
createWaitingThreadQueue
Deprecated.Creates the queue forwaitingThreads. Called once by the constructor.- Returns:
- a queue
-
createRouteToPoolMap
Deprecated.Creates the map forrouteToPool. Called once by the constructor.- Returns:
- a map
-
newRouteSpecificPool
Deprecated.Creates a new route-specific pool. Called bygetRoutePool(org.apache.http.conn.routing.HttpRoute, boolean)when necessary.- Parameters:
route- the route- Returns:
- the new pool
-
newWaitingThread
Deprecated.Creates a new waiting thread. Called bygetRoutePool(org.apache.http.conn.routing.HttpRoute, boolean)when necessary.- Parameters:
cond- the condition to wait forrospl- the route specific pool, ornull- Returns:
- a waiting thread representation
-
closeConnection
Deprecated. -
getRoutePool
Deprecated.Get a route-specific pool of available connections.- Parameters:
route- the routecreate- whether to create the pool if it doesn't exist- Returns:
- the pool for the argument route,
never
nullifcreateistrue
-
getConnectionsInPool
Deprecated. -
getConnectionsInPool
public int getConnectionsInPool()Deprecated. -
requestPoolEntry
Deprecated.Description copied from class:AbstractConnPoolReturns a newPoolEntryRequest, from which aBasicPoolEntrycan be obtained, or the request can be aborted.- Specified by:
requestPoolEntryin classAbstractConnPool- Parameters:
route- the routestate- the state- Returns:
- the entry request
-
getEntryBlocking
protected BasicPoolEntry getEntryBlocking(HttpRoute route, Object state, long timeout, TimeUnit timeUnit, WaitingThreadAborter aborter) throws ConnectionPoolTimeoutException, InterruptedException Deprecated.Obtains a pool entry with a connection within the given timeout. If aWaitingThreadis used to block,WaitingThreadAborter.setWaitingThread(WaitingThread)must be called before blocking, to allow the thread to be interrupted.- Parameters:
route- the route for which to get the connectiontimeout- the timeout, 0 or negative for no timeouttimeUnit- the unit for thetimeout, may benullonly if there is no timeoutaborter- an object which can abort aWaitingThread.- Returns:
- pool entry holding a connection for the route
- Throws:
ConnectionPoolTimeoutException- if the timeout expiredInterruptedException- if the calling thread was interrupted
-
freeEntry
public void freeEntry(BasicPoolEntry entry, boolean reusable, long validDuration, TimeUnit timeUnit) Deprecated.Description copied from class:AbstractConnPoolReturns an entry into the pool. The connection of the entry is expected to be in a suitable state, either open and re-usable, or closed. The pool will not make any attempt to determine whether it can be re-used or not.- Specified by:
freeEntryin classAbstractConnPool- Parameters:
entry- the entry for the connection to releasereusable-trueif the entry is deemed reusable,falseotherwise.validDuration- The duration that the entry should remain free and reusable.timeUnit- The unit of time the duration is measured in.
-
getFreeEntry
Deprecated.If available, get a free pool entry for a route.- Parameters:
rospl- the route-specific pool from which to get an entry- Returns:
- an available pool entry for the given route, or
nullif none is available
-
createEntry
Deprecated.Creates a new pool entry. This method assumes that the new connection will be handed out immediately.- Parameters:
rospl- the route-specific pool for which to create the entryop- the operator for creating a connection- Returns:
- the new pool entry for a new connection
-
deleteEntry
Deprecated.Deletes a given pool entry. This closes the pooled connection and removes all references, so that it can be GCed.Note: Does not remove the entry from the freeConnections list. It is assumed that the caller has already handled this step.
- Parameters:
entry- the pool entry for the connection to delete
-
deleteLeastUsedEntry
protected void deleteLeastUsedEntry()Deprecated.Delete an old, free pool entry to make room for a new one. Used to replace pool entries with ones for a different route. -
handleLostEntry
Deprecated.- Specified by:
handleLostEntryin classAbstractConnPool
-
notifyWaitingThread
Deprecated.Notifies a waiting thread that a connection is available. This will wake a thread waiting in the specific route pool, if there is one. Otherwise, a thread in the connection pool will be notified.- Parameters:
rospl- the pool in which to notify, ornull
-
deleteClosedConnections
public void deleteClosedConnections()Deprecated.Description copied from class:AbstractConnPoolDeletes all entries for closed connections.- Specified by:
deleteClosedConnectionsin classAbstractConnPool
-
closeIdleConnections
Deprecated.Closes idle connections.- Overrides:
closeIdleConnectionsin classAbstractConnPool- Parameters:
idletime- the time the connections should have been idle in order to be closed nowtimeUnit- the unit for theidletime
-
closeExpiredConnections
public void closeExpiredConnections()Deprecated.- Overrides:
closeExpiredConnectionsin classAbstractConnPool
-
shutdown
public void shutdown()Deprecated.Description copied from class:AbstractConnPoolShuts down this pool and all associated resources. Overriding methods MUST call the implementation here!- Overrides:
shutdownin classAbstractConnPool
-
setMaxTotalConnections
public void setMaxTotalConnections(int max) Deprecated.since 4.1 -
getMaxTotalConnections
public int getMaxTotalConnections()Deprecated.since 4.1
-
AbstractConnPool