我们有一个使用主机名连接到不同应用程序的应用程序。 如果更改运行该应用程序的系统的DNS服务器,该应用程序将因“ java.net.UnknownHostException”而开始失败。 但是我可以从系统中使用FQDN将ping请求发送到不同的应用程序。 为了使DNS服务器更改生效,我们必须重新启动应用程序。
Java中有什么方法可以在运行时刷新DNS服务器详细信息?
答案 0 :(得分:2)
您可以使用3种解决方案关闭Java的dns缓存:
解决方案1:
使用以下标志启动程序:
-Dsun.net.inetaddr.ttl=0
解决方案2:
在Java代码顶部使用setProperty
java.security.Security.setProperty("networkaddress.cache.ttl" , "0")
解决方案3:
在$JRE_HOME/lib/security/java.security
中设置:
networkaddress.cache.ttl = 0
networkaddress.cache.negative.ttl = 0