Tomcat或JVM崩溃转储文件?

3
我们的Tomcat服务器意外终止了(它作为Windows服务运行;系统事件日志显示错误:事件ID 7034)。
我该在哪里找到JVM崩溃的转储,或者一些指示Tomcat服务实际停止运行的迹象?
我们应用程序日志中出现了许多异常(我们的Web框架Wicket无法将某些页面序列化到磁盘上,因为存在NotSerializableException)。我猜这些是服务试图关闭的副作用(因为我们的页面中有非可序列化对象)。目前还不清楚是什么触发了服务关闭。
我已经检查了以下位置:
- 应用程序日志 - 访问日志 - stdout日志 - stderr日志 - tomcat.log - jakarta_service日志
我没有看到任何表明Tomcat正在关闭或VM发生错误的迹象。我在Windows应用程序事件中看到一些与SQL Server相关的网络错误,但这些错误发生的时间比Tomcat关闭早了近20分钟。
有什么提示吗?

1
将此问题设为社区维基,以便其他人可以进行更改,因为我目前没有在解决这个问题。 - RMorrisey
2个回答

0

确保您的Tomcat没有在调试模式下运行。 如果是这样,您必须禁用调试以停止Tomcat服务。

您可以在tomcat6.conf文件中查看。 您需要注释类似于以下内容的行:

#JAVA_OPTS="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4142,suspend=n"

你可以 停止/重启 你的Tomcat。

再见


0

我有相同的问题。当进行jni调用(调用本地代码)并在此处遇到错误时(例如,非法访问内存或分段故障),您将获得hs_err文件。我们既没有找到hs_err文件,也没有像通常情况下那样将错误显示到stderr中。我们知道Tomcat进程的退出状态为134(x86),我认为这表示中止信号。如果您在代码中调用stdlib 'abort()'方法,则会发生这种情况。我认为在我们的jni本机代码中的某个地方,我们正在调用'abort()'。不幸的是,似乎没有好的方法来查找它。如果我可以在Tomcat退出时从Tomcat生成核心转储,我就有了一些线索。

一个抛出Java异常不太可能导致Tomcat关闭。您是否有任何JNI代码,并且可能正在调用abort()?另外,您是否可能在某个地方调用Java调用System.exit()?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接