Class AggregateLDAPConnectionPoolHealthCheck

    • Constructor Detail

      • AggregateLDAPConnectionPoolHealthCheck

        public AggregateLDAPConnectionPoolHealthCheck​(java.util.Collection<? extends LDAPConnectionPoolHealthCheck> healthChecks)
        Creates a new instance of this LDAP connection pool health check.
        Parameters:
        healthChecks - The set of health checks that must all be satisfied in order to consider a connection valid.
    • Method Detail

      • ensureNewConnectionValid

        public void ensureNewConnectionValid​(LDAPConnection connection)
                                      throws LDAPException
        Performs any desired processing to determine whether the provided new connection is available to be checked out and used for processing operations. This method will be invoked by either ServerSet used by the connection pool (if it supports enhanced health checking) or by the connection pool itself at the time that a new connection is created. No authentication will have been performed on this connection at the time the health check is invoked.
        Overrides:
        ensureNewConnectionValid in class LDAPConnectionPoolHealthCheck
        Parameters:
        connection - The connection to be examined.
        Throws:
        LDAPException - If a problem is detected that suggests that the provided connection is not suitable for use.
      • ensureConnectionValidAfterAuthentication

        public void ensureConnectionValidAfterAuthentication​(LDAPConnection connection,
                                                             BindResult bindResult)
                                                      throws LDAPException
        Performs any desired processing to determine whether the provided connection is valid after processing a bind operation with the provided result.

        This method will be invoked under the following circumstances:
        • If you create a connection pool with a ServerSet and a non-null BindRequest, then this health check method will be invoked for every new connection created by the pool after processing that BindRequest on the connection. If you create a connection pool with a ServerSet but a null BindRequest, then no authentication will be attempted (and therefore this health check method will not be invoked for) newly-created connections.
        • If you create a connection pool with an LDAPConnection after having performed a bind operation on that connection, then every new connection created by the pool will attempt to perform the same type of bind operation and this health check method will be invoked after that bind attempt has completed. If you create a connection pool with an LDAPConnection that has not been authenticated, then no authentication will be attempted (and therefore this health check method will not be invoked for) newly-created connections.
        • If you call a connection pool's bindAndRevertAuthentication method, then this health check method will be called after the second bind operation (the one used to revert authentication) has completed. In this case, this health check method will be called even if the connection pool was created with a null BindRequest or with an unauthenticated LDAPConnection. In that case, the bind operation used to revert authentication will be a SimpleBindRequest with an empty DN and password.
        • If you call a connection pool's releaseAndReAuthenticateConnection method, then this health check method will be called after the bind operation has completed. As with bindAndRevertAuthentication, this health check method will be called even if the connection pool was created with a null BindRequest or with an unauthenticated LDAPConnection.


        Note that this health check method may be invoked even if the bind attempt was not successful. This is useful because it allows the health check to intercept a failed authentication attempt and differentiate it from other types of failures in the course of trying to create or check out a connection. In the event that it is invoked with a BindResult that has a result code other than ResultCode.SUCCESS, if this method throws an exception then that exception will be propagated to the caller. If this method does not throw an exception when provided with a non-SUCCESS result, then the connection pool itself will throw an exception using the information in the bind result.
        Overrides:
        ensureConnectionValidAfterAuthentication in class LDAPConnectionPoolHealthCheck
        Parameters:
        connection - The connection to be examined.
        bindResult - The bind result obtained from the authentication process.
        Throws:
        LDAPException - If a problem is detected that suggests that the provided connection is not suitable for use.
      • ensureConnectionValidForContinuedUse

        public void ensureConnectionValidForContinuedUse​(LDAPConnection connection)
                                                  throws LDAPException
        Performs any desired processing to determine whether the provided connection is valid and should continue to be made available for processing operations. This method will be periodically invoked by a background thread used to test availability of connections within the pool. This method should return normally if the connection is believed to be valid, or should throw an LDAPException if a problem is detected.
        Overrides:
        ensureConnectionValidForContinuedUse in class LDAPConnectionPoolHealthCheck
        Parameters:
        connection - The connection to be examined.
        Throws:
        LDAPException - If a problem is detected that suggests that the provided connection is not suitable for use.
      • toString

        public void toString​(java.lang.StringBuilder buffer)
        Appends a string representation of this LDAP connection pool health check to the provided buffer.
        Overrides:
        toString in class LDAPConnectionPoolHealthCheck
        Parameters:
        buffer - The buffer to which the information should be appended.