Class DNSCacheManager

All Implemented Interfaces:
Serializable, Cloneable, org.apache.http.conn.DnsResolver, ConfigElement, Searchable, org.apache.jmeter.testelement.TestElement, TestIterationListener

public class DNSCacheManager extends ConfigTestElement implements TestIterationListener, Serializable, org.apache.http.conn.DnsResolver
This config element provides ability to have flexible control over DNS caching function. Depending on option from @see DNSCachePanel, either system or custom resolver can be used. Custom resolver uses dnsjava library, and gives ability to bypass both OS and JVM cache. It allows to use paradigm "1 virtual user - 1 DNS cache" in performance tests.
Since:
2.12
See Also:
  • Field Details

    • DEFAULT_CLEAR_CACHE_EACH_ITER

      public static final boolean DEFAULT_CLEAR_CACHE_EACH_ITER
      See Also:
  • Constructor Details

    • DNSCacheManager

      public DNSCacheManager()
  • Method Details

    • clone

      public Object clone()
      Specified by:
      clone in interface ConfigElement
      Specified by:
      clone in interface org.apache.jmeter.testelement.TestElement
      Overrides:
      clone in class AbstractTestElement
    • resolve

      public InetAddress[] resolve(String host) throws UnknownHostException
      Resolves address using system or custom DNS resolver
      Specified by:
      resolve in interface org.apache.http.conn.DnsResolver
      Throws:
      UnknownHostException
    • testIterationStart

      public void testIterationStart(LoopIterationEvent event)
      Each time through a Thread Group's test script, an iteration event is fired for each thread. This will be after the test elements have been cloned, so in general the instance will not be the same as the ones the start/end methods call. Clean DNS cache if appropriate check-box was selected
      Specified by:
      testIterationStart in interface TestIterationListener
      Parameters:
      event - the iteration event
    • clear

      public void clear()
      Specified by:
      clear in interface org.apache.jmeter.testelement.TestElement
      Overrides:
      clear in class AbstractTestElement
    • addServer

      public void addServer(String dnsServer)
      Add DNS Server
      Parameters:
      dnsServer - DNS Server
    • getServers

      public CollectionProperty getServers()
      Returns:
      DNS Servers
    • addHost

      public void addHost(String dnsHost, String addresses)
      Add static host
      Parameters:
      dnsHost - DNS host
      addresses - Comma separated list of addresses
    • getHosts

      public CollectionProperty getHosts()
    • isClearEachIteration

      public boolean isClearEachIteration()
      Clean DNS cache each iteration
      Returns:
      boolean
    • setClearEachIteration

      public void setClearEachIteration(boolean clear)
      Clean DNS cache each iteration
      Parameters:
      clear - flag whether DNS cache should be cleared on each iteration
    • isCustomResolver

      public boolean isCustomResolver()
    • setCustomResolver

      public void setCustomResolver(boolean isCustomResolver)