오라클의 Tomas Hurka 덕분에이 질문에 대답 할 수 있습니다.
이 문제는 jvm이 감지 된 시점과 jvmstat (http://java.sun.com/performance/jvmstat/)에 의해 초기화 된 시점 사이의 시간 초과로 인해 발생합니다. 이 간격을 켠 상태에서 분명히 증가했습니다.
이 문제를 해결하는 방법은 두 가지가 있습니다.
1) 당신이 명시 적으로 파일 -을 통해 응용 프로그램> 추가 JMX 연결 에 연결
-Dcom.sun.management.jmxremote.port=<portNum>
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
로 및 VisualVM과에서 미리 정의 된 포트에 대한 모니터링 응용 프로그램에서 JMX를 활성화하고 "로컬 호스트를"사용할 수있는 연결 문자열로 .
2) 시간 제한을 설정할 수 있습니다.
a) visualvm/etc 디렉토리 (예 : visualvm_132 \ etc)에서 visualvm.conf의 defaults_opts 설정을 편집하여 필요에 따라 -J-Dsun.jvmstat.perdata.syncWaitMs = 10000이 증가되도록합니다 (* 10 ~ 100 초)
VisualVM에는 또한 도움말 -> 정보 -> 로그 파일을 통해 사용할 수있는 로그 파일이 있습니다.이 로그 파일에는 발생한 모든 예외가 표시됩니다. 여기에 타임 아웃 스택 추적을 발견했습니다 ...
INFO [com.sun.tools.visualvm.jvmstat.JvmstatModelProvider]: Could not get MonitoredVM
sun.jvmstat.monitor.MonitorException: Could not synchronize with target
at sun.jvmstat.perfdata.monitor.v2_0.PerfDataBuffer.synchWithTarget(PerfDataBuffer.java:262)
Tomas에게 다시 한 번 감사드립니다. 그는 이것에서 어떤 포인트를 가져야한다
출처
2011-09-01 11:54:54
JFK
아마 일식 링크 코드 계측은 VisualVM과 잘 작동합니까 ?? –
-javaagent 플래그에 연결되어 있습니까? 다른 Java 응용 프로그램의 모니터링이 제대로 작동합니까? –
Tomas, 예. -javaagent를 사용하여 앱을 시작하기 전까지 작동합니다. Peter가 말했듯이 eclipselink가 클래스의 바이트 코드를 바꾸는 'weaving'이기 때문에 이것이 의심 스럽습니다. 그리고 이것은 visualvm에서는 작동하지 않습니다. – JFK