У меня Tomcat 7
работает в Linux, который я запускаю через $CATALINA_HOME/bin/startup.sh
и выключаю через $CATALINA_HOME/bin/shutdown.sh
из /etc/init.d
Все в порядке, кроме одной проблемы. Иногда tomcat не останавливается.
Хотя я останавливаю его и вижу в журналах catalina.out, что он не работает, если я это сделаю ps -ef
, я все равно смогу увидеть, что процесс запущен.
В чем может быть проблема? Как я могу это отладить? Мне кажется, что это связано с потоками.
Таким образом, подозрительными являются следующие части:
1) Я использую LogManager Log4j, чтобы определить, была ли изменена конфигурация log4j, но я делаю Log4jManager.shutdown
на contextDestroyed
ServletContextListener
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 AM 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 Processed dump "пользователь", деталь "".
В /etc/init.d
есть javacore, но я не знаю, как его обработать. Т.е. какие части я должен исследовать
SEVERE: The web application [/MYAPPLICATION] appears to have started a thread named [H2 File Lock Watchdog /opt/myOrg/tomcat/webapps/MyApplication/lock.db] but has failed to stop it. This is very likely to create a memory leak.
в catalina.out? Я не создавал это, аH2
. - person Jim   schedule 02.04.2012H2
? - person Jim   schedule 02.04.2012