我有tomcat 6.0.14(安装在Red Hat linux 5.5和java 6 update 13中)与系统上的单点登录集成。
当SSO(单点登录)故障转移到另一个数据中心(并且sso的IP地址发生变化)时,tomcat继续坚持SSO系统的旧DNS条目。
然后我必须重新启动tomcat容器,以便它选择SSO系统的新DNS。每次SSO系统故障切换到不同的数据中心时,我都必须重启tomcat。
当SSO发生故障时,是否有办法配置tomcat刷新DNS而不重新启动。
答案 0 :(得分:2)
这里的问题不是特定于Tomcat,而是特定于虚拟机。特别是,请参阅InetAddress的文档。 This answer提供了解决方案,但我会提供一些完整性选项:
似乎有三种选择:
修改java.security
中找到的$JRE_HOME/lib/security
文件,并将networkaddress.cache.ttl
更改为合理而非-1(默认值或多或少)。
修改启动Tomcat以更改设置的命令,即在参数-Dsun.net.inetaddr.ttl=xxx
处,其中xxx
是合理的值。
通过运行:java.security.Security.setProperty("networkaddress.cache.ttl" , "xxx");