By Sylvain Duloutre on Jan 13, 2011
Every time a new client connection is treated, one of the tasks done is to log it to the access and connection logs. To log it, the canonical host name is retrieved, probably from the DNS server. If the call to InetAddress.getCanonicalHostName() gets blocked (for instance, because of a slow DNS server or a network problem), the calling Connection Handler Thread will get blocked for some time, preventing the thread from processing the other new connections and reading from the other connections.
In controlled environments, in may be useful to tune java dns caching, by setting the security property networkaddress.cache.ttl to a bigger value, or to -1 (cache forever).
You can't set the value of networkaddress.cache.ttl directly on the command line but you can set the required value in the java.security file located in %JRE%\\lib\\security