Interface ConnectionPool

All Superinterfaces:
AutoCloseable, Closeable, ConnectionFactory

public interface ConnectionPool extends ConnectionFactory
A connection factory which maintains and re-uses a pool of connections. Connections obtained from a connection pool are returned to the connection pool when closed, although connection pool implementations may choose to physically close the connection if needed (e.g. in order to reduce the size of the pool).

When connection pools are no longer needed they must be explicitly closed in order to close any remaining pooled connections.

Since pooled connections are re-used, applications must use operations such as binds and StartTLS with extreme caution.

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Releases any resources associated with this connection pool.
    Obtains a connection from this connection pool, potentially opening a new connection if needed.
    org.forgerock.util.promise.Promise<Connection,LdapException>
    Asynchronously obtains a connection from this connection pool, potentially opening a new connection if needed.
  • Method Details

    • close

      void close()
      Releases any resources associated with this connection pool. Pooled connections will be permanently closed and this connection pool will no longer be available for use.

      Attempts to use this connection pool after it has been closed will result in an IllegalStateException.

      Calling close on a connection pool which is already closed has no effect.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface ConnectionFactory
      See Also:
    • getConnectionAsync

      org.forgerock.util.promise.Promise<Connection,LdapException> getConnectionAsync()
      Asynchronously obtains a connection from this connection pool, potentially opening a new connection if needed.

      The returned Promise can be used to retrieve the pooled connection.

      Closing the pooled connection will, depending on the connection pool implementation, return the connection to this pool without closing it.

      Specified by:
      getConnectionAsync in interface ConnectionFactory
      Returns:
      A promise which can be used to retrieve the pooled connection.
      Throws:
      IllegalStateException - If this connection pool has already been closed.
    • getConnection

      Obtains a connection from this connection pool, potentially opening a new connection if needed.

      Closing the pooled connection will, depending on the connection pool implementation, return the connection to this pool without closing it.

      Specified by:
      getConnection in interface ConnectionFactory
      Returns:
      A pooled connection.
      Throws:
      LdapException - If the connection request failed for some reason.
      IllegalStateException - If this connection pool has already been closed.