@ThreadSafety(level=COMPLETELY_THREADSAFE) public final class CachingNameResolver extends NameResolver
NameResolver that will
cache lookups to potentially improve performance and provide a degree of
resiliency against name service outages.| Constructor and Description |
|---|
CachingNameResolver()
Creates a new instance of this caching name resolver that will use a
default timeout.
|
CachingNameResolver(int timeoutMillis)
Creates a new instance of this caching name resolver that will use the
specified timeout.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clearCache()
Clears all information from the name resolver cache.
|
java.net.InetAddress[] |
getAllByName(java.lang.String host)
Retrieves an array of
InetAddress objects that encapsulate all
known IP addresses associated with the provided host name. |
java.net.InetAddress[] |
getAllByNameInternal(java.lang.String host)
Retrieves an array of
InetAddress objects that encapsulate all
known IP addresses associated with the provided host name. |
java.net.InetAddress |
getByName(java.lang.String host)
Retrieves an
InetAddress that encapsulates an IP address associated
with the provided host name. |
java.lang.String |
getCanonicalHostName(java.net.InetAddress inetAddress)
Retrieves the canonical host name for the provided
InetAddress
object. |
java.lang.String |
getHostName(java.net.InetAddress inetAddress)
Retrieves the host name for the provided
InetAddress object. |
java.net.InetAddress |
getLocalHost()
Retrieves the address of the local host.
|
java.net.InetAddress |
getLoopbackAddress()
Retrieves the loopback address for the system.
|
int |
getTimeoutMillis()
Retrieves the length of time, in milliseconds, that cache records should
be considered valid.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this name resolver to the provided
buffer.
|
setJVMSuccessfulLookupCacheTTLSeconds, setJVMUnsuccessfulLookupCacheTTLSeconds, toStringpublic CachingNameResolver()
public CachingNameResolver(int timeoutMillis)
timeoutMillis - The length of time, in milliseconds, that cache
records should be considered valid. It must be
greater than zero. If a record has been in the
cache for less than this period of time, then the
cached record will be used instead of making a name
service call. If a record has been in the cache
for longer than this period of time, then the
cached record will only be used if it is not
possible to get an updated version of the record
from the name service.public int getTimeoutMillis()
@NotNull public java.net.InetAddress getByName(@Nullable java.lang.String host) throws java.net.UnknownHostException, java.lang.SecurityException
InetAddress that encapsulates an IP address associated
with the provided host name.getByName in class NameResolverhost - The host name for which to retrieve a corresponding
InetAddress object. It can be a resolvable name or
a textual representation of an IP address. If the provided
name is the textual representation of an IPv6 address, then
it can use either the form described in RFC 2373 or RFC 2732,
or it can be an IPv6 scoped address. If it is null,
then the returned address should represent an address of the
loopback interface.InetAddress that encapsulates an IP address associated
with the provided host name.java.net.UnknownHostException - If the provided name cannot be resolved to
its corresponding IP addresses.java.lang.SecurityException - If a security manager prevents the name
resolution attempt.@NotNull public java.net.InetAddress[] getAllByName(@Nullable java.lang.String host) throws java.net.UnknownHostException, java.lang.SecurityException
InetAddress objects that encapsulate all
known IP addresses associated with the provided host name.getAllByName in class NameResolverhost - The host name for which to retrieve the corresponding
InetAddress objects. It can be a resolvable name or
a textual representation of an IP address. If the provided
name is the textual representation of an IPv6 address, then
it can use either the form described in RFC 2373 or RFC 2732,
or it can be an IPv6 scoped address. If it is null,
then the returned address should represent an address of the
loopback interface.InetAddress objects that encapsulate all known
IP addresses associated with the provided host name.java.net.UnknownHostException - If the provided name cannot be resolved to
its corresponding IP addresses.java.lang.SecurityException - If a security manager prevents the name
resolution attempt.@NotNull public java.net.InetAddress[] getAllByNameInternal(@Nullable java.lang.String host) throws java.net.UnknownHostException, java.lang.SecurityException
InetAddress objects that encapsulate all
known IP addresses associated with the provided host name.host - The host name for which to retrieve the corresponding
InetAddress objects. It can be a resolvable name or
a textual representation of an IP address. If the provided
name is the textual representation of an IPv6 address, then
it can use either the form described in RFC 2373 or RFC 2732,
or it can be an IPv6 scoped address. If it is null,
then the returned address should represent an address of the
loopback interface.InetAddress objects that encapsulate all known
IP addresses associated with the provided host name.java.net.UnknownHostException - If the provided name cannot be resolved to
its corresponding IP addresses.java.lang.SecurityException - If a security manager prevents the name
resolution attempt.@NotNull public java.lang.String getHostName(@NotNull java.net.InetAddress inetAddress)
InetAddress object.getHostName in class NameResolverinetAddress - The address for which to retrieve the host name. It
must not be null.InetAddress object, or a
textual representation of the IP address if the name cannot be
determined.@NotNull public java.lang.String getCanonicalHostName(@NotNull java.net.InetAddress inetAddress)
InetAddress
object.getCanonicalHostName in class NameResolverinetAddress - The address for which to retrieve the canonical host
name. It must not be null.InetAddress
object, or a textual representation of the IP address if the name
cannot be determined.@NotNull public java.net.InetAddress getLocalHost() throws java.net.UnknownHostException, java.lang.SecurityException
InetAddress.getLocalHost in class NameResolverjava.net.UnknownHostException - If the local host name cannot be resolved.java.lang.SecurityException - If a security manager prevents the name
resolution attempt.@NotNull public java.net.InetAddress getLoopbackAddress()
getLoopbackAddress in class NameResolverpublic void clearCache()
public void toString(@NotNull java.lang.StringBuilder buffer)
toString in class NameResolverbuffer - A buffer to which the string representation should be
appended.