Я пытаюсь, чтобы Tomcat, который в настоящее время работает в качестве службы на Windows 2003, сбросил кучу на OutOfMemoryError
.
(Tomcat работает с Hudson, который сообщает о проблеме с пространством кучив конце моей сборки. Запуск сборки вручную не приводит к такой ошибке. Ребятам из Хадсона нужен дамп кучи, чтобы начать работу.)
Как указано в другом месте, я сказал Apache Service Monitor, чтобы настроитьJVM, которую он использует для запуска Tomcat для выгрузки кучи, когда встречается OutOfMemoryError
, добавляя следующие параметры JVM: -XX: + HeapDumpOnOutOfMemoryError Затем я снова запускаю сборку.Конечно же, он сообщает, что произошла ошибка кучи.Я сканирую весь диск в поисках файла java_pid123.hprof
по умолчанию (где, очевидно, 123
заменяется PID JVM)..hprof
файлов нигде не существует.
Я пойман на улове 22: Мне нужны дампы кучи для парней из Хадсона, чтобы исправить утечку памяти, но я не могу получить дамп кучи, если запустил Hudsonпод Tomcat.
Есть ли какой-то особый способ, когда Tomcat работает как служба Windows, чтобы получить дамп кучи из него на OutOfMemoryError?
Другая вещь, которую я пробовал, состоит в том, чтобыскажите ему на вкладках «Запуск» и «Выключение» использовать параметр «Java» вместо параметра «jvm».Я считаю, что это должно сказать Service Manager, чтобы он пытался запустить Tomcat с помощью исполняемой команды Java вместо непосредственного запуска jvm.dll
.Когда я это сделаю, служба не запустится.
Конечно, у кого-то еще была подобная проблема?