org.apache.commons.httpclient
Class MultiThreadedHttpConnectionManager

java.lang.Object
  |
  +--org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
All Implemented Interfaces:
HttpConnectionManager

public class MultiThreadedHttpConnectionManager
extends Object
implements HttpConnectionManager

Manages a set of HttpConnections for various HostConfigurations.

Since:
2.0
Author:
Michael Becke, Eric Johnson, Mike Bowler, Carl A. Dunham

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
 HttpConnection getConnection(HostConfiguration hostConfiguration)
          Gets an HttpConnection for a given host configuration.
 HttpConnection getConnection(HostConfiguration hostConfiguration, long timeout)
          Gets an HttpConnection for a given host configuration.
 int getConnectionsInUse()
          Gets the total number of connections in use.
 int getConnectionsInUse(HostConfiguration hostConfiguration)
          Gets the number of connections in use for this configuration.
 int getMaxConnectionsPerHost()
          Gets the maximum number of connections allowed for a given hostConfiguration.
 int getMaxTotalConnections()
          Gets the maximum number of connections allowed in the system.
 boolean isConnectionStaleCheckingEnabled()
          Gets the staleCheckingEnabled value to be set on HttpConnections that are created.
 void releaseConnection(HttpConnection conn)
          Make the given HttpConnection available for use by other requests.
 void setConnectionStaleCheckingEnabled(boolean connectionStaleCheckingEnabled)
          Sets the staleCheckingEnabled value to be set on HttpConnections that are created.
 void setMaxConnectionsPerHost(int maxHostConnections)
          Sets the maximum number of connections allowed for a given HostConfiguration.
 void setMaxTotalConnections(int maxTotalConnections)
          Sets the maximum number of connections allowed in the system.
 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.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MAX_HOST_CONNECTIONS

public static final int DEFAULT_MAX_HOST_CONNECTIONS
The default maximum number of connections allowed per host

DEFAULT_MAX_TOTAL_CONNECTIONS

public static final int DEFAULT_MAX_TOTAL_CONNECTIONS
The default maximum number of connections allowed overall
Constructor Detail

MultiThreadedHttpConnectionManager

public MultiThreadedHttpConnectionManager()
No-args constructor
Method Detail

shutdownAll

public static void shutdownAll()
Shuts down and cleans up resources used by all instances of MultiThreadedHttpConnectionManager. All static resources are released, all threads are stopped, and shutdown() is called on all live instaces of MultiThreadedHttpConnectionManager.
See Also:
shutdown()

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.


isConnectionStaleCheckingEnabled

public boolean isConnectionStaleCheckingEnabled()
Gets the staleCheckingEnabled value to be set on HttpConnections that are created.
Returns:
true if stale checking will be enabled on HttpConections
See Also:
HttpConnection.isStaleCheckingEnabled()

setConnectionStaleCheckingEnabled

public void setConnectionStaleCheckingEnabled(boolean connectionStaleCheckingEnabled)
Sets the staleCheckingEnabled value to be set on HttpConnections that are created.
Parameters:
connectionStaleCheckingEnabled - true if stale checking will be enabled on HttpConections
See Also:
HttpConnection.setStaleCheckingEnabled(boolean)

setMaxConnectionsPerHost

public void setMaxConnectionsPerHost(int maxHostConnections)
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

getMaxConnectionsPerHost

public int getMaxConnectionsPerHost()
Gets the maximum number of connections allowed for a given hostConfiguration.
Returns:
The maximum number of connections allowed for a given hostConfiguration.

setMaxTotalConnections

public void setMaxTotalConnections(int maxTotalConnections)
Sets the maximum number of connections allowed in the system.
Parameters:
maxTotalConnections - the maximum number of connections allowed

getMaxTotalConnections

public int getMaxTotalConnections()
Gets the maximum number of connections allowed in the system.
Returns:
The maximum number of connections allowed

getConnection

public HttpConnection getConnection(HostConfiguration hostConfiguration)
Description copied from interface: HttpConnectionManager
Gets an HttpConnection for a given host configuration. If a connection is not available this method will block until one is. The connection manager should be registered with any HttpConnection that is created.
Specified by:
getConnection in interface HttpConnectionManager
See Also:
HttpConnectionManager.getConnection(HostConfiguration)

getConnection

public HttpConnection getConnection(HostConfiguration hostConfiguration,
                                    long timeout)
                             throws HttpException
Description copied from interface: HttpConnectionManager
Gets an HttpConnection for a given host configuration. If a connection is not available, this method will block for at most the specified number of milliseconds or until a connection becomes available. The connection manager should be registered with any HttpConnection that is created.
Specified by:
getConnection in interface HttpConnectionManager
See Also:
HttpConnectionManager.getConnection(HostConfiguration, long)

getConnectionsInUse

public int getConnectionsInUse(HostConfiguration 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

getConnectionsInUse

public int getConnectionsInUse()
Gets the total number of connections in use.
Returns:
the total number of connections in use

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.


Copyright © 2001-2004 Apache Software Foundation. All Rights Reserved.