Назад | Перейти на главную страницу

Apache Tomcat перезапускается

Мы запускаем Tomcat 6.0.35 на Windows 2008 Server.

Каждые несколько дней у него заканчивается память. Мы заметили в журналах, что сервер случайно переинициализируется.

Мы видим это в журнале tomcat.

[main] INFO org.apache.catalina.core.StandardService - Запуск службы Catalina

И каждый раз, когда он выходит из строя, мы видим это предупреждающее сообщение:

ОШИБКА org.apache.catalina.loader.WebappClassLoader. Веб-приложение [/ webconsole] создало ThreadLocal с ключом типа [org.apache.log4j.helpers.ThreadLocalMap] (значение [org.apache.log4j.helpers.ThreadLocalMap@38fc73ee ]) и значение типа [java.util.Hashtable] (значение [{}]), но не удалось удалить его при остановке веб-приложения. Это может привести к утечке памяти.

Мы решили, что это может быть проблема с ошибка log4j.

Однако более серьезный вопрос заключается в том, почему сервер повторно инициализируется? Мы проверили, наблюдаются ли какие-то изменения файлов, которые вызывают перезапуск, но их нет.

Буду признателен, если у кого-то есть указатели.

Это похоже на тип сообщения об ошибке, которое регистрируется, когда срабатывает обнаружение / предотвращение утечки памяти tomcat. В MemoryLeakProtection на странице Tomcat Wiki есть дополнительная информация об этом.

Вы можете остановить повторную инициализацию, отключив autoDeploy в Host элемент вашего server.xml. Tomcat по умолчанию поставляется с autoDeploy установлен в правда.