Class PoolingHttpClientConnectionManager

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, HttpClientConnectionManager, ConnPoolControl<HttpRoute>

    @Contract(threading=SAFE_CONDITIONAL)
    public class PoolingHttpClientConnectionManager
    extends java.lang.Object
    implements HttpClientConnectionManager, ConnPoolControl<HttpRoute>, java.io.Closeable
    ClientConnectionPoolManager maintains a pool of HttpClientConnections and is able to service connection requests from multiple execution threads. Connections are pooled on a per route basis. A request for a route which already the manager has persistent connections for available in the pool will be services by leasing a connection from the pool rather than creating a brand new connection.

    ClientConnectionPoolManager maintains a maximum limit of connection on a per route basis and in total. Per default this implementation will create no more than than 2 concurrent connections per given route and no more 20 connections in total. For many real-world applications these limits may prove too constraining, especially if they use HTTP as a transport protocol for their services. Connection limits, however, can be adjusted using ConnPoolControl methods.

    Total time to live (TTL) set at construction time defines maximum life span of persistent connections regardless of their expiration setting. No persistent connection will be re-used past its TTL value.

    The handling of stale connections was changed in version 4.4. Previously, the code would check every connection by default before re-using it. The code now only checks the connection if the elapsed time since the last use of the connection exceeds the timeout that has been set. The default timeout is set to 2000ms

    Since:
    4.3