Tomcat не останавливается. Как я могу отладить это?

У меня есть Tomcat 7, работающий в Linux, который я запускаю через $CATALINA_HOME/bin/startup.shи завершаю работу через $CATALINA_HOME/ bin/shutdown.sh
from /etc/init.d

Все в порядке, кроме одной проблемы. Иногда кот не останавливается.
Хотя я останавливаю его и вижу в журналах catalina.out, что происходит сбой, если я делаю ps -ef, я все равно вижу, что процесс выполняется.

В чем может быть проблема? Как я могу отладить это? Я чувствую, что это связано с потоками.

Итак, части, вызывающие подозрение, следующие:
1) Я использую LogManager Log4j, чтобы определить, была ли изменена конфигурация log4j, но я делаю Log4jManager.shutdownдля contextDestroyedServletContextListener
2) я использую H2базы данных, и я вижу при завершении работы:

СЕРЬЕЗНЫЙ: Веб-приложение [/MyApplication], похоже, запустило
поток с именем [H2 Log Writer MYAPPLICATION], но не смог его остановить.
Очень вероятно, что это приведет к утечке памяти.

СЕРЬЕЗНЫЙ: веб-приложение [/MyApplication], похоже, запустило
поток с именем [H2 File Lock Watchdog
/opt/myOrg/tomcat/webapps/MyApplication/db/myDatabase.lock.db], но имеет
не удалось это остановить. Это очень вероятно, чтобы создать утечку памяти. 2 апр
2012 9:08:08 org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads СЕРЬЕЗНЫЙ: веб-приложение [/MyApplication]
кажется, запустил поток с именем [FileWatchdog], но не удалось
остановить это. Это очень вероятно, чтобы создать утечку памяти.

Помогите пожалуйста? Как я могу обнаружить проблему здесь?

ОБНОВЛЕНИЕ:
Я сделал kill -3, как предложил @daveb, и в файле catalina.out я вижу:

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 Обработано событие дампа "пользователь", деталь "".

В /etc/init.dесть javacore, но я не знаю, как его обработать. т.е. какие части я должен исследовать

32
задан Jim 4 April 2012 в 08:05
поделиться