Как создать дамп памяти процесса Java, запущенного как служба Windows? - PullRequest
1 голос
/ 14 июня 2011

Как создать дамп памяти процесса Java, запущенного как служба Windows? С помощью таких инструментов, как jVisualVM, jstack или jconsole, я не вижу процесс, потому что служба запускается с системной учетной записью.

Редактировать: С помощью jVisualVM я могу видеть процесс, но он показывает только «Не поддерживается для этой JVM».

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Чтобы использовать инструменты, вам нужно запускать от имени того же пользователя, что и служба.Если вам не нужна эта функция безопасности, вам нужно настроить JMX, чтобы сервер разрешал удаленный доступ (который также будет работать на том же компьютере, что и другой пользователь)

Если вы используете taskmgr длясоздайте низкоуровневый дамп памяти, у вас будут проблемы с поиском любых инструментов, которые могут иметь смысл вывода.Вам нужно использовать инструмент Java для запуска дампа.

0 голосов
/ 14 июня 2011

Если вы используете Windows 7 / Vista, запустите taskmgr от имени администратора, найдите свой процесс, щелкните правой кнопкой мыши «Создать дамп памяти».Другие ваши инструменты могут работать правильно, если они также работают от имени администратора.Процесс должен быть повышен, чтобы получить дамп памяти процесса, который вам не принадлежит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...