Tomcat показывает эту ошибку "Это очень вероятно, чтобы создать утечку памяти". Как решить эту проблему?

Я создал веб-приложение в Apache Cocoon. Этот веб-сайт работает правильно, но через каждые 3-4 дня он перестает отвечать. Он не работает до тех пор, пока мы не перезапустим службу tomcat. В файле catalina.2011-05-09.log он показывает следующую ошибку: -

"9 мая 2011 г. 3:17:34 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: веб-приложение [/webresources] все еще обрабатывает запрос, который еще не завершен. Это, скорее всего, приведет к утечке памяти. Вы можете контролировать время, отведенное на завершение запросов, используя атрибут unloadDelay стандартной реализации Context."

Я не смог понять причину этой проблемы. Может кто-нибудь подсказать мне, как решить эту проблему?

2 ответа

Вы используете библиотеку, которая запускает один или несколько потоков и неправильно отключает их или освобождает другие ресурсы, захваченные потоком. Это часто происходит с такими вещами, как HTTP-компоненты Apache (я получаю эту ошибку с Http-компонентами) и всем, что использует отдельные потоки внутри. Какие библиотеки вы используете в своем приложении Cocoon?

Это говорит вам о проблеме:

 [...] is still processing a request that has yet to finish

Вам нужно выяснить, на что направлен этот запрос. Один простой способ - установить что-то вроде PsiProbe.

Кроме того, неплохо бы перезапускать Tomcat каждую ночь. Это может помочь облегчить подобные проблемы, пока вы не найдете основную причину.

Другие вопросы по тегам