【发布时间】:2013-06-06 12:19:59
【问题描述】:
在我们的开发环境中,我们在 Cent OS 5.5 上有 2 个 Tomcat 7.0.22 节点,由 F5 负载均衡器和粘性会话处理。我们最近升级到 JDK 7 并开始观察随机的 tomcat 关闭。从公共共享加载器目录部署多个战争。关机时的模式如下
- 在大多数情况下,两个节点一个接一个地关闭。在一种情况下,一只 tomcat 死了,而另一只还在。
- catalina 日志表明在打印“INFO: Stopping service Catalina”后正常关机
- 我们找不到任何 System.exit 调用
- 没有 OOM 迹象
- 我们在 Spring 容器中添加了一个关闭挂钩,线程转储没有引发任何可疑线程。
- 后台没有运行看门狗服务
- 在 etc/lograte.d 下观察到一个轮换日志的脚本
- 8080 的 HTTP 1.1 连接器,重定向 8443
- 8009 的 AJP,重定向 8443
我已经没有办法调试这个问题了。基本上,我正在寻找一个钩子或调试器,它可以让我知道调用关闭的确切进程或线程。这应该是可能的,因为它是正常关闭并且 Tomcat 处理了它。
我们将主要恢复到 JDK 1.6 并测试几天。到那时,任何帮助或指点将不胜感激
提前致谢!
【问题讨论】:
-
您的声明“从公共共享加载程序目录部署多个战争”没有任何意义:WAR 不是从“共享加载程序目录”(无论它们是什么)加载的。你能澄清一下吗?
-
嗨,克里斯,我的意思是,战争配置存储在 tomcat/conf/Catalina/localhost/*.xml 中,所有共享 jar 的路径在“共享”下的 tomcat/conf/catalina.properties 中指定.loader"
-
这个怎么样:''在 etc/lograte.d 下观察到一个脚本旋转日志''。您实际上是如何轮换日志的?