Tomcat缓存Single Sign On系统的旧dns条目

时间:2014-08-01 23:48:51

标签: java tomcat caching dns single-sign-on

我有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而不重新启动。

1 个答案:

答案 0 :(得分:2)

这里的问题不是特定于Tomcat,而是特定于虚拟机。特别是,请参阅InetAddress的文档。 This answer提供了解决方案,但我会提供一些完整性选项:

似乎有三种选择:

  1. 修改java.security中找到的$JRE_HOME/lib/security文件,并将networkaddress.cache.ttl更改为合理而非-1(默认值或多或少)。

  2. 修改启动Tomcat以更改设置的命令,即在参数-Dsun.net.inetaddr.ttl=xxx处,其中xxx是合理的值。

  3. 通过运行:java.security.Security.setProperty("networkaddress.cache.ttl" , "xxx");

  4. 在您的应用中更改它