org.apache.commons.httpclient

Class MultiThreadedHttpConnectionManager

Implemented Interfaces:
HttpConnectionManager

public class MultiThreadedHttpConnectionManager
extends java.lang.Object
implements HttpConnectionManager

Manages a set of HttpConnections for various HostConfigurations.
Authors:
Michael Becke
Eric Johnson
Mike Bowler
Carl A. Dunham
Since:
2.0

Field Summary

static int
DEFAULT_MAX_HOST_CONNECTIONS
The default maximum number of connections allowed per host
static int
DEFAULT_MAX_TOTAL_CONNECTIONS
The default maximum number of connections allowed overall

Constructor Summary

MultiThreadedHttpConnectionManager()
No-args constructor

Method Summary

void
closeIdleConnections(long idleTimeout)
void
deleteClosedConnections()
Deletes all closed connections.
HttpConnection
getConnection(HostConfiguration hostConfiguration)
HttpConnection
getConnection(HostConfiguration hostConfiguration, long timeout)
Deprecated. Use #getConnectionWithTimeout(HostConfiguration, long)
HttpConnection
getConnectionWithTimeout(HostConfiguration hostConfiguration, long timeout)
int
getConnectionsInPool()
Gets the total number of pooled connections.
int
getConnectionsInPool(HostConfiguration hostConfiguration)
Gets the total number of pooled connections for the given host configuration.
int
getConnectionsInUse()
Deprecated. Use getConnectionsInPool()
int
getConnectionsInUse(HostConfiguration hostConfiguration)
Deprecated. Use getConnectionsInPool(HostConfiguration)
int
getMaxConnectionsPerHost()
Deprecated. Use HttpConnectionManagerParams.getDefaultMaxConnectionsPerHost(), HttpConnectionManager.getParams().
int
getMaxTotalConnections()
Deprecated. Use HttpConnectionManagerParams.getMaxTotalConnections(), HttpConnectionManager.getParams().
HttpConnectionManagerParams
getParams()
Returns parameters associated with this connection manager.
boolean
isConnectionStaleCheckingEnabled()
Deprecated. Use HttpConnectionManagerParams.isStaleCheckingEnabled(), HttpConnectionManager.getParams().
void
releaseConnection(HttpConnection conn)
Make the given HttpConnection available for use by other requests.
void
setConnectionStaleCheckingEnabled(boolean connectionStaleCheckingEnabled)
Deprecated. Use HttpConnectionManagerParams.setStaleCheckingEnabled(boolean), HttpConnectionManager.getParams().
void
setMaxConnectionsPerHost(int maxHostConnections)
Deprecated. Use HttpConnectionManagerParams.setDefaultMaxConnectionsPerHost(int), HttpConnectionManager.getParams().
void
setMaxTotalConnections(int maxTotalConnections)
Deprecated. Use HttpConnectionManagerParams.setMaxTotalConnections(int), HttpConnectionManager.getParams().
void
setParams(HttpConnectionManagerParams params)
Assigns parameters for this connection manager.
void
shutdown()
Shuts down the connection manager and releases all resources.
static void
shutdownAll()
Shuts down and cleans up resources used by all instances of MultiThreadedHttpConnectionManager.

Field Details

DEFAULT_MAX_HOST_CONNECTIONS

public static final int DEFAULT_MAX_HOST_CONNECTIONS
The default maximum number of connections allowed per host
Field Value:
2

DEFAULT_MAX_TOTAL_CONNECTIONS

public static final int DEFAULT_MAX_TOTAL_CONNECTIONS
The default maximum number of connections allowed overall
Field Value:
20

Constructor Details

MultiThreadedHttpConnectionManager

public MultiThreadedHttpConnectionManager()
No-args constructor

Method Details

closeIdleConnections

public void closeIdleConnections(long idleTimeout)
Specified by:
closeIdleConnections in interface HttpConnectionManager
Since:
3.0

deleteClosedConnections

public void deleteClosedConnections()
Deletes all closed connections. Only connections currently owned by the connection manager are processed.
Since:
3.0

getConnection

public HttpConnection getConnection(HostConfiguration hostConfiguration)
Specified by:
getConnection in interface HttpConnectionManager

getConnection

public HttpConnection getConnection(HostConfiguration hostConfiguration,
                                    long timeout)
            throws HttpException

Deprecated. Use #getConnectionWithTimeout(HostConfiguration, long)

Specified by:
getConnection in interface HttpConnectionManager

getConnectionWithTimeout

public HttpConnection getConnectionWithTimeout(HostConfiguration hostConfiguration,
                                               long timeout)
            throws ConnectionPoolTimeoutException
Specified by:
getConnectionWithTimeout in interface HttpConnectionManager
Since:
3.0

getConnectionsInPool

public int getConnectionsInPool()
Returns:
the total number of pooled connections

getConnectionsInPool

public int getConnectionsInPool(HostConfiguration hostConfiguration)
Gets the total number of pooled connections for the given host configuration. This is the total number of connections that have been created and are still in use by this connection manager for the host configuration. This value will not exceed the maximum number of connections per host.
Parameters:
hostConfiguration - The host configuration
Returns:
The total number of pooled connections

getConnectionsInUse

public int getConnectionsInUse()

Deprecated. Use getConnectionsInPool()

Gets the total number of connections in use.
Returns:
the total number of connections in use

getConnectionsInUse

public int getConnectionsInUse(HostConfiguration hostConfiguration)

Deprecated. Use getConnectionsInPool(HostConfiguration)

Gets the number of connections in use for this configuration.
Parameters:
hostConfiguration - the key that connections are tracked on
Returns:
the number of connections in use

getMaxConnectionsPerHost

public int getMaxConnectionsPerHost()

Deprecated. Use HttpConnectionManagerParams.getDefaultMaxConnectionsPerHost(), HttpConnectionManager.getParams().

Gets the maximum number of connections allowed for a given hostConfiguration.
Returns:
The maximum number of connections allowed for a given hostConfiguration.

getMaxTotalConnections

public int getMaxTotalConnections()

Deprecated. Use HttpConnectionManagerParams.getMaxTotalConnections(), HttpConnectionManager.getParams().

Gets the maximum number of connections allowed for this connection manager.
Returns:
The maximum number of connections allowed

getParams

public HttpConnectionManagerParams getParams()
Returns parameters associated with this connection manager.
Specified by:
getParams in interface HttpConnectionManager
Since:
3.0

isConnectionStaleCheckingEnabled

public boolean isConnectionStaleCheckingEnabled()

Deprecated. Use HttpConnectionManagerParams.isStaleCheckingEnabled(), HttpConnectionManager.getParams().

Gets the staleCheckingEnabled value to be set on HttpConnections that are created.
Returns:
true if stale checking will be enabled on HttpConnections

releaseConnection

public void releaseConnection(HttpConnection conn)
Make the given HttpConnection available for use by other requests. If another thread is blocked in getConnection() that could use this connection, it will be woken up.
Specified by:
releaseConnection in interface HttpConnectionManager
Parameters:
conn - the HttpConnection to make available.

setConnectionStaleCheckingEnabled

public void setConnectionStaleCheckingEnabled(boolean connectionStaleCheckingEnabled)

Deprecated. Use HttpConnectionManagerParams.setStaleCheckingEnabled(boolean), HttpConnectionManager.getParams().

Sets the staleCheckingEnabled value to be set on HttpConnections that are created.
Parameters:
connectionStaleCheckingEnabled - true if stale checking will be enabled on HttpConnections

setMaxConnectionsPerHost

public void setMaxConnectionsPerHost(int maxHostConnections)

Deprecated. Use HttpConnectionManagerParams.setDefaultMaxConnectionsPerHost(int), HttpConnectionManager.getParams().

Sets the maximum number of connections allowed for a given HostConfiguration. Per RFC 2616 section 8.1.4, this value defaults to 2.
Parameters:
maxHostConnections - the number of connections allowed for each hostConfiguration

setMaxTotalConnections

public void setMaxTotalConnections(int maxTotalConnections)

Deprecated. Use HttpConnectionManagerParams.setMaxTotalConnections(int), HttpConnectionManager.getParams().

Sets the maximum number of connections allowed for this connection manager.
Parameters:
maxTotalConnections - the maximum number of connections allowed

setParams

public void setParams(HttpConnectionManagerParams params)
Assigns parameters for this connection manager.
Specified by:
setParams in interface HttpConnectionManager
Since:
3.0

shutdown

public void shutdown()
Shuts down the connection manager and releases all resources. All connections associated with this class will be closed and released.

The connection manager can no longer be used once shutdown.

Calling this method more than once will have no effect.


shutdownAll

public static void shutdownAll()
See Also:
shutdown()

Copyright (c) 1999-2005 - Apache Software Foundation