雄猫不会停止。如何调试它?
我有一个在Linux中运行,我通过启动和关闭从Tomcat 7
$CATALINA_HOME/bin/startup.sh
$CATALINA_HOME/bin/shutdown.sh
/etc/init.d
除了1个问题,一切都很好。有时雄猫不会停止。
虽然我停止了它,并且我在catalina.out日志中看到正在下降,但如果我这样做,我仍然可以看到进程正在运行。ps -ef
可能是什么问题?如何调试它?我的感觉是,这与线程有关。
因此,可疑的部分如下:
1)我使用Log4j的LogManager来检测log4j配置是否已更改,但我在
2)我使用数据库并在关闭时看到:Log4jManager.shutdown
contextDestroyed
ServletContextListener
H2
严重:Web 应用程序 [/MyApplication] 似乎启动了一
个名为 [H2 Log Writer MYAPPLICATION] 的线程,但未能阻止它。
这很可能会造成内存泄漏严重:Web 应用程序 [/MyApplication] 似乎启动了一
个名为 [H2 File Lock Watchdog
/opt/myOrg/tomcat/webapps/MyApplication/db/myDatabase.lock.db] 的线程,但
未能阻止它。这很可能会造成内存泄漏。Apr 2,
2012 9:08:08 AM org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads SEVERE: Web 应用程序 [/MyApplication]
似乎启动了一个名为 [FileWatchdog] 的线程,但未能
停止它。这很可能会造成内存泄漏。
请帮忙吗?如何检测到此处的问题?
更新:
我按照@daveb的建议做了一个,在catalina.out中我看到:kill -3
JVMDUMP006I 正在处理转储事件“用户”,详细信息“” - 请稍候。JVMDUMP032I JVM 请求 Java 转储使用 '/etc/init.d/javacore.20120402.093922.2568.0001.txt' 来响应事件 JVMDUMP010I Java 转储写入 /etc/init.d/javacore.20120402.093922.2568.0001.txt JVMDUMP013I 处理的转储事件“user”, detail “”。.
有一个javacore,但我不知道如何处理它。即我应该调查哪些部分/etc/init.d