Class CachingNameResolver

java.lang.Object
com.unboundid.ldap.sdk.NameResolver
com.unboundid.ldap.sdk.CachingNameResolver

This class provides an implementation of a NameResolver that will cache lookups to potentially improve performance and provide a degree of resiliency against name service outages.
  • Constructor Details

    • CachingNameResolver

      Creates a new instance of this caching name resolver that will use a default timeout.
    • CachingNameResolver

      public CachingNameResolver(int timeoutMillis)
      Creates a new instance of this caching name resolver that will use the specified timeout.
      Parameters:
      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.
  • Method Details

    • getTimeoutMillis

      public int getTimeoutMillis()
      Retrieves the length of time, in milliseconds, that cache records should be considered valid. If a record has been in the cache for less than this period fo 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.
      Returns:
      The length of time, in milliseconds, that cache records should be considered valid.
    • getByName

      Retrieves an InetAddress that encapsulates an IP address associated with the provided host name.
      Overrides:
      getByName in class NameResolver
      Parameters:
      host - 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.
      Returns:
      An InetAddress that encapsulates an IP address associated with the provided host name.
      Throws:
      UnknownHostException - If the provided name cannot be resolved to its corresponding IP addresses.
      SecurityException - If a security manager prevents the name resolution attempt.
    • getAllByName

      Retrieves an array of InetAddress objects that encapsulate all known IP addresses associated with the provided host name.
      Overrides:
      getAllByName in class NameResolver
      Parameters:
      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.
      Returns:
      An array of InetAddress objects that encapsulate all known IP addresses associated with the provided host name.
      Throws:
      UnknownHostException - If the provided name cannot be resolved to its corresponding IP addresses.
      SecurityException - If a security manager prevents the name resolution attempt.
    • getAllByNameInternal

      Retrieves an array of InetAddress objects that encapsulate all known IP addresses associated with the provided host name.
      Parameters:
      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.
      Returns:
      An array of InetAddress objects that encapsulate all known IP addresses associated with the provided host name.
      Throws:
      UnknownHostException - If the provided name cannot be resolved to its corresponding IP addresses.
      SecurityException - If a security manager prevents the name resolution attempt.
    • getHostName

      Retrieves the host name for the provided InetAddress object.
      Overrides:
      getHostName in class NameResolver
      Parameters:
      inetAddress - The address for which to retrieve the host name. It must not be null.
      Returns:
      The host name for the provided InetAddress object, or a textual representation of the IP address if the name cannot be determined.
    • getCanonicalHostName

      Retrieves the canonical host name for the provided InetAddress object.
      Overrides:
      getCanonicalHostName in class NameResolver
      Parameters:
      inetAddress - The address for which to retrieve the canonical host name. It must not be null.
      Returns:
      The canonical host name for the provided InetAddress object, or a textual representation of the IP address if the name cannot be determined.
    • getLocalHost

      Retrieves the address of the local host. This should be the name of the host obtained from the system, converted to an InetAddress.
      Overrides:
      getLocalHost in class NameResolver
      Returns:
      The address of the local host.
      Throws:
      UnknownHostException - If the local host name cannot be resolved.
      SecurityException - If a security manager prevents the name resolution attempt.
    • getLoopbackAddress

      Retrieves the loopback address for the system. This should be either the IPv4 loopback address of 127.0.0.1, or the IPv6 loopback address of ::1.
      Overrides:
      getLoopbackAddress in class NameResolver
      Returns:
      The loopback address for the system.
    • clearCache

      public void clearCache()
      Clears all information from the name resolver cache.
    • toString

      public void toString(@NotNull StringBuilder buffer)
      Appends a string representation of this name resolver to the provided buffer.
      Specified by:
      toString in class NameResolver
      Parameters:
      buffer - A buffer to which the string representation should be appended.