2016-11-02 2 views
0

Я попытался захватить дамп процесса tomcat с помощью jmap, однако я получил сообщение об ошибке «Недостаточно памяти или недостаточно прав для присоединения», очевидно, что памяти достаточно, и пользователь в настоящий момент входит в группу локального администратора. Если я запускаю команду cmd как администратор, она все равно не работает.«Недостаточно памяти или недостаточных привилегий для присоединения» при захвате дампа tomcat

C:\Program Files\Java\jdk1.7.0_71\bin>jmap.exe -dump:format=b,file=d:\temp\HeapD 
ump.hprof 30452 
30452: Insufficient memory or insufficient privileges to attach 
The -F option can be used when the target process is not responding 
+0

Вы пытались использовать параметр -F? Вы используете jmap как тот же пользователь, что и Tomcat? – Catchwa

+1

Я вижу эту ошибку раньше в tomcat. см. этот http://stackoverflow.com/questions/20149635/java-jstack-tool-insufficient-memory-or-insufficient-privilege-to-attach –

+0

Возможна дубликация [JSTACK и недостаточно памяти для обработки этой команды] (http://stackoverflow.com/questions/906620/jstack-and-not-enough-storage-is-available-to-process-this-command) – Vadzim

ответ

0

я столкнулся с подобным сценарием, где мы были под управлением сервером пристани, завернутый в качестве службы Windows, и я хотел взять дамп памяти о нем. Я думаю, что большинство ответов в другом месте на SO посвящены ситуациям, когда процесс, который вы хотите взять дамп, не работает как служба Windows. Это помогло link.

Скачать PsExec и запустить jmap так:

<path to psexec>PsExec.exe -s "C:\Program Files\Java\jd k1.8.0_131\bin\jmap.exe" -dump:file=<filename> <processid>

Смежные вопросы