java jstack tool недостаточно памяти или недостаточно прав для подключения

Я действительно сбит с толку: в моих окнах 2008r2 у меня есть служба Windows, на самом деле это java-прогресс, работающий как пользователь SYSTEM. Теперь я напрямую использую Jstack для службы. Но возникает ошибка:

 insufficient memory or insufficient privilege to attach

Но если я использую параметры -F Jstack, он может работать нормально. Я просматриваю исходный код jdk, он использует класс BugSpotAgent для завершения, описанного выше.

Я хочу знать основную причину, по которой я не могу использовать Jstack в чистом виде. Это проблема с правами пользователя SYSTEM? Я также пытаюсь использовать PsExec.exe (инструмент) для прямого запуска моего Jstack (это означает, что я буду использовать пользователя SYSTEM для запуска < strong> Jstack), но по-прежнему не работает.

Можешь мне помочь?

С уважением!


person user2994487    schedule 22.11.2013    source источник
comment
См. Также Jstack и Недостаточно памяти для обработайте эту команду для обходного пути для служб Windows.   -  person Vadzim    schedule 13.04.2017


Ответы (1)


jstack может подключаться только к процессу, запущенному тем же пользователем в том же сеансе. Если сеанс не указан, команда psexec фиксируется на сеансе консоли и выдает эту ошибку при попытке получить дамп потока.

Решение состоит в том, чтобы убедиться, что пользователь и сеанс, используемые с psexec, совпадают с пользователем и сеансом, используемым для целевого java-процесса.

если он был запущен обычным пользователем, a. использовать те же учетные данные пользователя для входа без флага -s или -h b. найти идентификатор сеанса, в котором был запущен процесс. (Вы можете найти его в Диспетчере задач во вкладке Пользователи). Используйте этот идентификатор сеанса с флагом -i

psexec \\server-name -u username -p password -i session-id command

e.g.

psexec \\192.168.1.1 -u john -p pass123 -i 1 jstack.exe 4242

Примечание. Если Java-процесс был запущен пользователем SYSTEM, используйте флаг -s

person M.N    schedule 16.07.2014