org.apache.commons.httpclient
Class MultiThreadedHttpConnectionManager

java.lang.Object
  |
  +--org.apache.commons.httpclient.MultiThreadedHttpConnectionManager

public class MultiThreadedHttpConnectionManager
extends java.lang.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
static java.util.Map REFERENCE_TO_CONNECTION_SOURCE
          A mapping from Reference to ConnectionSource.
 
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.
 
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

REFERENCE_TO_CONNECTION_SOURCE

public static final java.util.Map REFERENCE_TO_CONNECTION_SOURCE
A mapping from Reference to ConnectionSource. Used to reclaim resources when connections are lost to the garbage collector.
Constructor Detail

MultiThreadedHttpConnectionManager

public MultiThreadedHttpConnectionManager()
No-args constructor
Method Detail

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.