我有 Tomcat 6.0.14(安装在 RedHat Linux 5.5 和 Java 6 update 13 中)与 SSO(单点登录)系统集成。
当 SSO 故障转移到不同的数据中心(并且 SSO 的 IP 地址发生变化)时,Tomcat 继续坚持使用 SSO 系统的旧 DNS 条目。
然后我必须重新启动 Tomcat 容器,以便它选择 SSO 系统的新 DNS。每次 SSO 系统故障转移到不同的数据中心时,我都必须重新启动 Tomcat。
有没有办法配置 Tomcat 在 SSO 故障转移时刷新 DNS 而无需重新启动?
最佳答案
这里的问题不是 Tomcat 特有的,而是虚拟机特有的。特别是,请参阅 InetAddress 的文档. This answer提供了解决方案,但我会给出一些完整性选项:
似乎有三种选择:
编辑
$JRE_HOME/lib/security
中的java.security
文件并将networkaddress.cache.ttl
更改为一些合理的东西而不是 -1(默认值或多或少)。修改启动 Tomcat 的命令以更改设置,即在参数
-Dsun.net.inetaddr.ttl=xxx
中,xxx
是合理的值(value)。通过运行以下命令在您的应用中更改它:
java.security.Security.setProperty("networkaddress.cache.ttl", "xxx");
关于java - Tomcat 缓存单点登录系统的旧 dns 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25090259/