|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.unboundid.ldap.sdk.ServerSet
com.unboundid.ldap.sdk.DNSSRVRecordServerSet
@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class DNSSRVRecordServerSet
This class provides a server set implementation that can discover information
about available directory servers through DNS SRV records as described in
RFC 2782. DNS SRV records
make it possible for clients to use the domain name system to discover
information about the systems that provide a given service, which can help
avoid the need to explicitly configure clients with the addresses of the
appropriate set of directory servers.
The standard service name used to reference LDAP directory servers is
"_ldap._tcp". If client systems have DNS configured properly with an
appropriate search domain, then this may be all that is needed to discover
any available directory servers. Alternately, a record name of
"_ldap._tcp.example.com" may be used to request DNS information about LDAP
servers for the example.com domain. However, there is no technical
requirement that "_ldap._tcp" must be used for this purpose, and it may make
sense to use a different name if there is something special about the way
clients should interact with the servers (e.g., "_ldaps._tcp" would be more
appropriate if LDAP clients need to use SSL when communicating with the
server).
DNS SRV records contain a number of components, including:
Constructor Summary | |
---|---|
DNSSRVRecordServerSet(java.lang.String recordName)
Creates a new instance of this server set that will use the specified DNS record name, a default DNS provider URL that will attempt to determine DNS servers from the underlying system configuration, a default TTL of one hour, round-robin ordering for servers with the same priority, and default socket factory and connection options. |
|
DNSSRVRecordServerSet(java.lang.String recordName,
java.lang.String providerURL,
long ttlMillis,
javax.net.SocketFactory socketFactory,
LDAPConnectionOptions connectionOptions)
Creates a new instance of this server set that will use the provided settings. |
|
DNSSRVRecordServerSet(java.lang.String recordName,
java.lang.String providerURL,
java.util.Properties jndiProperties,
long ttlMillis,
javax.net.SocketFactory socketFactory,
LDAPConnectionOptions connectionOptions)
Creates a new instance of this server set that will use the provided settings. |
Method Summary | |
---|---|
LDAPConnection |
getConnection()
Attempts to establish a connection to one of the directory servers in this server set. |
LDAPConnection |
getConnection(LDAPConnectionPoolHealthCheck healthCheck)
Attempts to establish a connection to one of the directory servers in this server set, using the provided health check to further validate the connection. |
LDAPConnectionOptions |
getConnectionOptions()
Retrieves the set of connection options to use for connections that are created, if any. |
java.util.Map<java.lang.String,java.lang.String> |
getJNDIProperties()
Retrieves an unmodifiable map of properties that will be used to initialize the JNDI context used to interact with DNS. |
java.lang.String |
getProviderURL()
Retrieves the JNDI provider URL that specifies the DNS server(s) to use. |
java.lang.String |
getRecordName()
Retrieves the name of the DNS SRV record to retrieve. |
javax.net.SocketFactory |
getSocketFactory()
Retrieves the socket factory that will be used when creating connections, if any. |
long |
getTTLMillis()
Retrieves the maximum length of time in milliseconds that previously-retrieved DNS information should be cached before it needs to be refreshed. |
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this server set to the provided buffer. |
Methods inherited from class com.unboundid.ldap.sdk.ServerSet |
---|
toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public DNSSRVRecordServerSet(java.lang.String recordName)
recordName
- The name of the DNS SRV record to retrieve. If this is
null
, then a default record name of
"_ldap._tcp" will be used.public DNSSRVRecordServerSet(java.lang.String recordName, java.lang.String providerURL, long ttlMillis, javax.net.SocketFactory socketFactory, LDAPConnectionOptions connectionOptions)
recordName
- The name of the DNS SRV record to retrieve. If
this is null
, then a default record name
of "_ldap._tcp" will be used.providerURL
- The JNDI provider URL that may be used to
specify the DNS server(s) to use. If this is
not specified, then a default URL of "dns:" will
be used, which will attempt to determine the
appropriate servers from the underlying system
configuration.ttlMillis
- Specifies the maximum length of time in
milliseconds that DNS information should be
cached before it needs to be retrieved again. A
value less than or equal to zero will use the
default TTL of one hour.socketFactory
- The socket factory that will be used when
creating connections. It may be null
if
the JVM-default socket factory should be used.connectionOptions
- The set of connection options that should be
used for the connections that are created. It
may be null
if the default connection
options should be used.public DNSSRVRecordServerSet(java.lang.String recordName, java.lang.String providerURL, java.util.Properties jndiProperties, long ttlMillis, javax.net.SocketFactory socketFactory, LDAPConnectionOptions connectionOptions)
recordName
- The name of the DNS SRV record to retrieve. If
this is null
, then a default record name
of "_ldap._tcp" will be used.providerURL
- The JNDI provider URL that may be used to
specify the DNS server(s) to use. If this is
not specified, then a default URL of "dns:" will
be used, which will attempt to determine the
appropriate servers from the underlying system
configuration.jndiProperties
- A set of JNDI-related properties that should be
be used when initializing the context for
interacting with the DNS server via JNDI. If
this is null
, then a default set of
properties will be used.ttlMillis
- Specifies the maximum length of time in
milliseconds that DNS information should be
cached before it needs to be retrieved again. A
value less than or equal to zero will use the
default TTL of one hour.socketFactory
- The socket factory that will be used when
creating connections. It may be null
if
the JVM-default socket factory should be used.connectionOptions
- The set of connection options that should be
used for the connections that are created. It
may be null
if the default connection
options should be used.Method Detail |
---|
public java.lang.String getRecordName()
public java.lang.String getProviderURL()
public java.util.Map<java.lang.String,java.lang.String> getJNDIProperties()
public long getTTLMillis()
public javax.net.SocketFactory getSocketFactory()
null
if the JVM-default socket factory will be used.public LDAPConnectionOptions getConnectionOptions()
null
if a default set of options should be
used.public LDAPConnection getConnection() throws LDAPException
LDAPConnection.getConnectedAddress()
and
LDAPConnection.getConnectedPort()
methods.
getConnection
in class ServerSet
LDAPConnection
object that is established to one of the
servers in this server set.
LDAPException
- If it is not possible to establish a connection to
any of the servers in this server set.public LDAPConnection getConnection(LDAPConnectionPoolHealthCheck healthCheck) throws LDAPException
LDAPConnection.getConnectedAddress()
and
LDAPConnection.getConnectedPort()
methods.
getConnection
in class ServerSet
healthCheck
- The health check to use to make the determination, or
null
if no additional health check should be
performed.
LDAPConnection
object that is established to one of the
servers in this server set.
LDAPException
- If it is not possible to establish a connection to
any of the servers in this server set.public void toString(java.lang.StringBuilder buffer)
toString
in class ServerSet
buffer
- The buffer to which the string representation should be
appended.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |