Tomcat或JVM崩溃转储文件?

时间:2010-02-19 21:23:15

标签: tomcat crash crash-dumps tomcat5.5 jvm-crash

我们的Tomcat服务器意外终止。 (它作为Windows服务运行;系统事件日志显示错误:事件ID 7034)。

我在哪里可以找到JVM崩溃的转储,或者说明Tomcat服务实际停止运行的原因?

我在应用程序日志中看到了许多异常(我们的Web框架,由于NotSerializableException,Wicket无法将我们的某些页面序列化到磁盘)。我猜这些是服务试图关闭的副作用(因为我们的页面中有非可序列化的对象)。我不清楚是什么触发了服务关闭。

我检查过以下地方:

  • 申请日志
  • 访问日志
  • stdout log
  • stderr log
  • tomcat.log
  • jakarta_service log

我没有看到任何表明Tomcat正在关闭或发生VM错误的内容。我在Windows应用程序事件中看到了一些与SQL Server相关的网络错误,但这些错误几乎发生在20分钟后。

任何提示?

2 个答案:

答案 0 :(得分:0)

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

抛出Java异常不太可能导致Tomcat关闭。你有任何JNI代码吗?你可能正在调用abort()吗?另外,您是否可以在System.exit()的某处进行Java调用?

答案 1 :(得分:0)

确保您的tomcat未在调试模式下运行。 如果是,则必须禁用调试以停止tomcat服务。

你可以在你的tomcat6.conf中看到它。 您必须对与此类似的行进行评论:

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

你可以stop/restart你的tomcat。

再见