2012-12-03 8 views
7

MAC OSX Mountain Lion에서 TomEE 1.5.1 및 VisualVM 1.7.0_09에 매우 이상한 문제가 발생했습니다.VisualVM이 로컬 TomEE에 매우 느리게 연결되어 힙 덤프를 할 수 없습니다.

TomEE가 일부 webapp을로드 한 후 VisualVM을 사용하여 로컬 TomIME 프로세스에 연결하는 데 오랜 시간이 걸리며 연결된 후에 gc 버튼이 비활성화되고 힙 덤프를 수행 할 수 없습니다. VisualVM의 로그에 오류가 표시됩니다.

com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded 
    at sun.tools.attach.BsdVirtualMachine.<init>(BsdVirtualMachine.java:90) 
    at sun.tools.attach.BsdAttachProvider.attachVirtualMachine(BsdAttachProvider.java:63) 
    at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:213) 
    at com.sun.tools.visualvm.attach.AttachModelImpl.getVirtualMachine(AttachModelImpl.java:104) 
Caused: java.io.IOException: Unable to open socket file: target process not responding or HotSpot VM not loaded 

.java_pid<pid> 파일이 tmp 폴더에 생성되지 않았습니다.

VisualVM을 사용하여 TomEE를 시작한 후 웹 응용 프로그램을로드하기 전에 .java_pid<pid> 파일이 만들어지고 VisualVM이 즉시 연결되어 힙 덤프가 작동합니다.

catalina.sh를 수정하여 tools.jar를 ClassPath에 추가하고 openejb javaagent를 제거한 다음 TomEE가 완전히 시작된 후 제대로 연결되면 연결하십시오.

우분투 컴퓨터에서 재생할 수 없습니다.

+0

JMS에 연결 하시겠습니까? JMS로 시도하십시오. –

+0

jconsole을 사용해보고 작동 방식을 확인하십시오. – javahaxxor

답변

0

아마 jvm의 메모리가 부족합니다. 나는 그것을 여러 번 보았다. 시도 :

  1. increasing memory limits
  2. VisualVM을 jvm에 연결하십시오.
  3. 응용 프로그램을 배포하십시오.
  4. 메모리 샘플러, 프로파일 러 또는 힙 덤프를 실행하여 문제를 진단하십시오. 아마도 메모리 누수가있을 것입니다. 힙 덤프는 메모리 문제가있는 경우 가장 안전한 방법입니다. take heap dump using command line 또한 VisualVM에서 나중에 분석 할 수 있습니다.

또한 시스템의 메모리가 부족하지 않은지 확인하십시오.