# Class DNSCacheManager

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.config.ConfigTestElement
org.apache.jmeter.protocol.http.control.DNSCacheManager

All Implemented Interfaces:
  `Serializable, Cloneable, ConfigElement, Searchable, TestElement, TestIterationListener`

public class DNSCacheManager extends ConfigTestElement implements TestIterationListener, Serializable
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:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`CLEAR_CACHE_EACH_ITER`
`static final boolean`
`DEFAULT_CLEAR_CACHE_EACH_ITER`
`static final boolean`
`DEFAULT_IS_CUSTOM_RESOLVER`
`static final String`
`DEFAULT_SERVERS`
`static final String`
`IS_CUSTOM_RESOLVER`
`static final String`
`SERVERS`

### Fields inherited from class ConfigTestElement

`PASSWORD, USERNAME`

### Fields inherited from interface TestElement

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

## Constructor Summary

Constructors
Constructor
Description
`DNSCacheManager()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addServer(String dnsServer)`
`void`
`clear()`
Clear the TestElement of all data.
`Object`
`clone()`
`CollectionProperty`
`getServers()`
`boolean`
`isClearEachIteration()`
Clean DNS cache each iteration
`boolean`
`isCustomResolver()`
`InetAddress[]`
`resolve(String host)`
Resolves address using system or custom DNS resolver
`void`
`setClearEachIteration(boolean clear)`
Clean DNS cache each iteration
`void`
`setCustomResolver(boolean isCustomResolver)`
`void`
`testIterationStart(LoopIterationEvent event)`
Each time through a Thread Group's test script, an iteration event is fired for each thread.

### Methods inherited from class ConfigTestElement

`addConfigElement, addTestElement, expectsModification`

### Methods inherited from class AbstractTestElement

`addPropertiesValues, addProperty, addProperty, canRemove, clearTemporary, clearTestElementChildren, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

### Methods inherited from class Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### CLEAR_CACHE_EACH_ITER

public static final String CLEAR_CACHE_EACH_ITER

See Also:
  - Constant Field Values

### SERVERS

public static final String SERVERS

See Also:
  - Constant Field Values

### IS_CUSTOM_RESOLVER

public static final String IS_CUSTOM_RESOLVER

See Also:
  - Constant Field Values

### DEFAULT_CLEAR_CACHE_EACH_ITER

public static final boolean DEFAULT_CLEAR_CACHE_EACH_ITER

See Also:
  - Constant Field Values

### DEFAULT_SERVERS

public static final String DEFAULT_SERVERS

See Also:
  - Constant Field Values

### DEFAULT_IS_CUSTOM_RESOLVER

public static final boolean DEFAULT_IS_CUSTOM_RESOLVER

See Also:
  - Constant Field Values

## Constructor Details

### DNSCacheManager

public DNSCacheManager()

## Method Details

### clone

public Object clone()

Specified by:
  `clone` in interface `ConfigElement`
Specified by:
  `clone` in interface `TestElement`
Overrides:
  `clone` in class `AbstractTestElement`

### resolve

public InetAddress[] resolve(String host) throws UnknownHostException
Resolves address using system or custom DNS resolver

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()
Clear the TestElement of all data.

Specified by:
  `clear` in interface `TestElement`
Overrides:
  `clear` in class `AbstractTestElement`

### addServer

public void addServer(String dnsServer)

### getServers

public CollectionProperty getServers()

### 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)