Class ConnectionPool


  • public class ConnectionPool
    extends java.lang.Object
    Connection pool, typically used by a server to avoid creating a new connection for each client
    Version:
    1.2
    • Constructor Summary

      Constructors 
      Constructor Description
      ConnectionPool​(int min, int max, java.lang.String host, int port)
      Constructor for specifying all parameters, anonymous identity
      ConnectionPool​(int min, int max, java.lang.String host, int port, java.lang.String authdn, java.lang.String authpw)
      Constructor for specifying all parameters
      ConnectionPool​(int min, int max, LDAPConnection ldc)
      Constructor for using an existing connection to clone from.
      ConnectionPool​(java.lang.String host, int port)
      Constructor for using default parameters, anonymous identity
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close​(LDAPConnection ld)
      This is our soft close - all we do is mark the connection as available for others to use.
      void destroy()
      Destroy the whole pool - called during a shutdown
      LDAPConnection getConnection()
      Gets a connection from the pool If no connections are available, the pool will be extended if the number of connections is less than the maximum; if the pool cannot be extended, the method blocks until a free connection becomes available.
      LDAPConnection getConnection​(int timeout)
      Gets a connection from the pool within a time limit.
      protected LDAPConnection getConnFromPool()
      Gets a connection from the pool If no connections are available, the pool will be extended if the number of connections is less than the maximum; if the pool cannot be extended, the method returns null.
      boolean getDebug()
      Reports the debug printout mode.
      void printPool()
      Debug method to print the contents of the pool
      void setDebug​(boolean mode)
      Sets the debug printout mode.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ConnectionPool

        public ConnectionPool​(int min,
                              int max,
                              java.lang.String host,
                              int port,
                              java.lang.String authdn,
                              java.lang.String authpw)
                       throws LDAPException
        Constructor for specifying all parameters
        Parameters:
        min - initial number of connections
        max - maximum number of connections
        host - hostname of LDAP server
        port - port number of LDAP server
        authdn - DN to authenticate as
        authpw - password for authentication
        Throws:
        LDAPException - on failure to create connections
      • ConnectionPool

        public ConnectionPool​(int min,
                              int max,
                              java.lang.String host,
                              int port)
                       throws LDAPException
        Constructor for specifying all parameters, anonymous identity
        Parameters:
        min - initial number of connections
        max - maximum number of connections
        host - hostname of LDAP server
        port - port number of LDAP server
        Throws:
        LDAPException - on failure to create connections
      • ConnectionPool

        public ConnectionPool​(java.lang.String host,
                              int port)
                       throws LDAPException
        Constructor for using default parameters, anonymous identity
        Parameters:
        host - hostname of LDAP server
        port - port number of LDAP server
        Throws:
        LDAPException - on failure to create connections
      • ConnectionPool

        public ConnectionPool​(int min,
                              int max,
                              LDAPConnection ldc)
                       throws LDAPException
        Constructor for using an existing connection to clone from.

        The connection to clone must be already established and the user authenticated.

        Parameters:
        min - initial number of connections
        max - maximum number of connections
        ldc - connection to clone
        Throws:
        LDAPException - on failure to create connections
    • Method Detail

      • destroy

        public void destroy()
        Destroy the whole pool - called during a shutdown
      • getConnection

        public LDAPConnection getConnection()
        Gets a connection from the pool If no connections are available, the pool will be extended if the number of connections is less than the maximum; if the pool cannot be extended, the method blocks until a free connection becomes available.
        Returns:
        an active connection.
      • getConnection

        public LDAPConnection getConnection​(int timeout)
        Gets a connection from the pool within a time limit. If no connections are available, the pool will be extended if the number of connections is less than the maximum; if the pool cannot be extended, the method blocks until a free connection becomes available or the time limit is exceeded.
        Parameters:
        timeout - timeout in milliseconds
        Returns:
        an active connection or null if timed out.
      • getConnFromPool

        protected LDAPConnection getConnFromPool()
        Gets a connection from the pool If no connections are available, the pool will be extended if the number of connections is less than the maximum; if the pool cannot be extended, the method returns null.
        Returns:
        an active connection or null.
      • close

        public void close​(LDAPConnection ld)
        This is our soft close - all we do is mark the connection as available for others to use. We also reset the auth credentials in case they were changed by the caller.
        Parameters:
        ld - a connection to return to the pool
      • printPool

        public void printPool()
        Debug method to print the contents of the pool
      • setDebug

        public void setDebug​(boolean mode)
        Sets the debug printout mode.
        Parameters:
        mode - debug mode to use
      • getDebug

        public boolean getDebug()
        Reports the debug printout mode.
        Returns:
        debug mode in use.