java - Tomcat 缓存单点登录系统的旧 dns 条目

标签 java tomcat caching dns single-sign-on

我有 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提供了解决方案,但我会给出一些完整性选项:

似乎有三种选择:

  1. 编辑 $JRE_HOME/lib/security 中的 java.security 文件并将 networkaddress.cache.ttl 更改为一些合理的东西而不是 -1(默认值或多或少)。

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

  3. 通过运行以下命令在您的应用中更改它:java.security.Security.setProperty("networkaddress.cache.ttl", "xxx");

关于java - Tomcat 缓存单点登录系统的旧 dns 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25090259/

相关文章:

java - 使用查询时在 Hibernate 中查找部分缓存数据

java - 未找到 Mvn 命令?

java - 处理来自 Throwable catch 的 NullPointerException 的最佳方法? (安卓)

tomcat - 多个应用实例

java - 从 Java 瘦客户端获取 Apache Ignite 缓存中的所有 key

javascript - 如果脚本已经在浏览器缓存中,浏览器还会延迟加载脚本吗?

java - 在JDBC程序中动态创建表名

java - 无法使用 ProcessBuilder 运行程序,从命令行运行正常

tomcat - 运行 Apache Tomcat -XDB 的问题

java - Apache Tomcat 无法在 Windows 10 上启动 2 个 Web 应用程序