2011-06-14 4 views
1

Windows 서비스로 실행되는 Java 프로세스의 메모리 덤프를 만드는 방법은 무엇입니까? jVisualVM, jstack 또는 jconsole과 같은 도구를 사용하면 서비스가 시스템 계정으로 실행되므로 프로세스를 볼 수 없습니다.Windows 프로세스로 실행되는 Java 프로세스의 메모리 덤프를 만드는 방법은 무엇입니까?

편집 : jVisualVM을 사용하면 프로세스가 표시되지만 "이 JVM에서는 지원되지 않습니다."라는 메시지 만 표시됩니다.

+0

수락하지 않은 질문이 10 개 이상 있습니다. ;) –

+0

JConx를 관리자로 실행하거나 JmxRemote를 설정하거나 taskmgr을 사용하여 두 가지 답변을 얻을 수 있습니다 (이 방법으로는 해보지 않았습니다.) – ericp

+0

@Peter Lawrey 질문이 하나뿐입니다. 따라서 수십 가지 이상의 질문을 받아 들일 수는 없습니다. – Horcrux7

답변

1

도구를 사용하려면 서비스와 동일한 사용자로 실행해야합니다. 이 보안 기능이 필요하지 않은 경우 서버를 원격 액세스 할 수 있도록 JMX를 설정해야합니다 (다른 사용자와 동일한 상자에서도 작동 함)

낮은 수준을 생성하려면 taskmgr을 사용하는 경우 메모리 덤프를 사용하면 출력을 이해할 수있는 도구를 찾는 데 어려움이 있습니다. 덤프를 시작하려면 Java 도구를 사용해야합니다.

+0

명령 줄 매개 변수를 통해 JMX를 활성화 할 수 있습니까? – Horcrux7

+0

Google에서 명령 줄 매개 변수를 찾을 수 있습니다. – Horcrux7

0

Windows 7/Vista를 사용하는 경우 관리자로 taskmgr을 실행하고 프로세스를 찾은 다음 "메모리 덤프 만들기"를 마우스 오른쪽 단추로 클릭하십시오. 다른 도구가 관리자로 실행되면 올바르게 작동 할 수도 있습니다. 프로세스가 자신의 프로세스가 아닌 메모리 덤프를 사용하려면 상승되어야합니다.

+0

나는 힙 덤프라는 Java 메모리 덤프를 의미합니다. 나는 윈도우 메모리 덤프가 필요 없다. – Horcrux7

+0

그리고 jVisualVM 또는 jconsole을 실행하려고 시도 했습니까? – vcsjones

+0

동일한 사용자 계정이어야합니다. 즉, 관리자가 아닌 시스템 계정으로 실행해야합니다. 나는 이것이 어떻게 작동하는지 전혀 모른다. – Horcrux7

관련 문제