Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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
`void` | `closeIdleConnections(long idleTimeout)` Closes connections that have been idle for at least the given amount of time.
`void` | `deleteClosedConnections()` Deletes all closed connections.
`HttpConnection` | `getConnection(HostConfiguration hostConfiguration)` Gets an HttpConnection for a given host configuration.
`HttpConnection` | `getConnection(HostConfiguration hostConfiguration, long timeout)` Deprecated. Use #getConnectionWithTimeout(HostConfiguration, long)
`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)`
`HttpConnection` | `getConnectionWithTimeout(HostConfiguration hostConfiguration, long timeout)` Gets a connection or waits if one is not available.
`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 `HttpConnectionParams.isStaleCheckingEnabled()`, `HttpConnectionManager.getParams()`.
`void` | `releaseConnection(HttpConnection conn)` Make the given HttpConnection available for use by other requests.
`void` | `setConnectionStaleCheckingEnabled(boolean connectionStaleCheckingEnabled)` Deprecated. Use `HttpConnectionParams.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.

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

  See Also:
    Constant Field Values

### DEFAULT_MAX_TOTAL_CONNECTIONS

    public static final int DEFAULT_MAX_TOTAL_CONNECTIONS

  The default maximum number of connections allowed overall

  See Also:
    Constant Field Values

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 instances 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 shut down.

  Calling this method more than once will have no effect.

### isConnectionStaleCheckingEnabled

    public boolean isConnectionStaleCheckingEnabled()

  Deprecated. Use `HttpConnectionParams.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
  See Also:
    `HttpConnection.isStaleCheckingEnabled()`

### setConnectionStaleCheckingEnabled

    public void setConnectionStaleCheckingEnabled(boolean connectionStaleCheckingEnabled)

  Deprecated. Use `HttpConnectionParams.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
  See Also:
    `HttpConnection.setStaleCheckingEnabled(boolean)`

### 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

### 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.

### 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

### 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

### 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`
  Parameters:
    `hostConfiguration` - the host configuration to use to configure the connection
  Returns:
    an HttpConnection for the given configuration
  See Also:
    `HttpConnectionManager.getConnection(HostConfiguration)`

### getConnectionWithTimeout

    public HttpConnection getConnectionWithTimeout(HostConfiguration hostConfiguration,
                                                   long timeout)
                                            throws ConnectionPoolTimeoutException

  Gets a connection or waits if one is not available. A connection is available if one exists that is not being used or if fewer than maxHostConnections have been created in the connectionPool, and fewer than maxTotalConnections have been created in all connectionPools.

  Specified by:
    `getConnectionWithTimeout` in interface `HttpConnectionManager`
  Parameters:
    `hostConfiguration` - The host configuration specifying the connection details.
    `timeout` - the number of milliseconds to wait for a connection, 0 to wait indefinitely
  Returns:
    HttpConnection an available connection
  Throws:
    `HttpException` - if a connection does not become available in 'timeout' milliseconds
    `ConnectionPoolTimeoutException` - if no connection becomes available before the timeout expires
  Since:
    3.0
  See Also:
    `HttpConnection.setHttpConnectionManager(HttpConnectionManager)`

### getConnection

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

  Deprecated. Use #getConnectionWithTimeout(HostConfiguration, long)

  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`
  Parameters:
    `hostConfiguration` - the host configuration to use to configure the connection
    `timeout` - - the time (in milliseconds) to wait for a connection to become available, 0 to specify an infinite timeout
  Returns:
    an HttpConnection for the given configuraiton
  Throws:
    `HttpException` - if no connection becomes available before the timeout expires
  See Also:
    `HttpConnectionManager.getConnection(HostConfiguration, long)`

### 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

### getConnectionsInPool

    public int getConnectionsInPool()

  Gets the total number of pooled connections. This is the total number of connections that have been created and are still in use by this connection manager. This value will not exceed the `maximum number of connections`.

  Returns:
    the total number of pooled connections

### 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

### getConnectionsInUse

    public int getConnectionsInUse()

  Deprecated. Use `getConnectionsInPool()`

  Gets the total number of connections in use.

  Returns:
    the total number of connections in use

### deleteClosedConnections

    public void deleteClosedConnections()

  Deletes all closed connections. Only connections currently owned by the connection manager are processed.

  Since:
    3.0
  See Also:
    `HttpConnection.isOpen()`

### closeIdleConnections

    public void closeIdleConnections(long idleTimeout)

  Description copied from interface: `HttpConnectionManager`
  Closes connections that have been idle for at least the given amount of time. Only connections that are currently owned, not checked out, are subject to idle timeouts.

  Specified by:
    `closeIdleConnections` in interface `HttpConnectionManager`
  Parameters:
    `idleTimeout` - the minimum idle time, in milliseconds, for connections to be closed
  Since:
    3.0

### 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.

### getParams

    public HttpConnectionManagerParams getParams()

  Returns `parameters` associated with this connection manager.

  Specified by:
    `getParams` in interface `HttpConnectionManager`
  Since:
    3.0
  See Also:
    `HttpConnectionManagerParams`

### setParams

    public void setParams(HttpConnectionManagerParams params)

  Assigns `parameters` for this connection manager.

  Specified by:
    `setParams` in interface `HttpConnectionManager`
  Since:
    3.0
  See Also:
    `HttpConnectionManagerParams`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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