Validation of pooled connections is the primary motivation
for using a custom pooling library versus the JDK provided
LDAP pooling functionality. Validation allows pooled
DirContext
connections to be checked to ensure they are still properly
connected and configured when checking them out of the pool,
in to the pool or while idle in the pool
The
DirContextValidator
interface is used by the
PoolingContextSource
for validation and
DefaultDirContextValidator
is provided as the default validation implementation.
DefaultDirContextValidator
does a
DirContext.search(String, String, SearchControls)
, with an empty name, a filter of
"objectclass=*"
and
SearchControls
set to limit a single result with the only the objectclass
attribute and a 500ms timeout. If the returned
NamingEnumeration
has results the
DirContext
passes validation, if no results are returned or an
exception is thrown the
DirContext
fails validation. The
DefaultDirContextValidator
should work with no configuration changes on most LDAP
servers and provide the fastest way to validate the
DirContext
.