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