2016-12-22 6 views
1

VisualVM을 원격 JMX에 연결하려고합니다. 인 IntelliJ는 번거 로움없이 연결할 수 있지만 VisualVM과는 로그 출력에 다음과 같이 실패JMX 연결이 "handshake failed ... expected JDWP-Handshake"로 실패합니다.

Listening for transport dt_socket at address: 5005 
Debugger failed to attach: recv failed during handshake: Resource temporarily unavailable 
Debugger failed to attach: handshake failed - received >< - expected >JDWP-Handshake< 

을 여기에 내가 런타임에 전달있어 JVM의 특성은 다음과 같습니다

-XX:MaxPermSize=50g -XX:+HeapDumpOnOutOfMemoryError -Xmx50g -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=100.100.100.100 -Dcom.sun.management.jmxremote.port=5006 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 

VisualVM과 1.3.9을 사용하여이. IntelliJ가 성공하는 이유가 실패한 이유를 잘 모릅니다. SSL 인증 등을 사용 중지하려고 시도했습니다.

답변

2

5005에서 수신 대기중인 소켓은 JMX 수신기가 아니며, 수신자는 java debug wire protocol입니다. 따라서 VisualVM은 해당 포트에 연결할 수 없으므로 핸드 셰이크 오류가 발생합니다.

+0

okay는 시작시 JMX를 활성화하고 포트로 설정한다는 것을 제외하고는 대부분의 문제를 해결합니다. 그래서 여기에 무엇을 놓치고 있습니까? – crockpotveggies

+0

음 ... 디버그 포트가 먼저 바인딩되어 있으므로 JMX 리스너가 자동으로 작동하지 않을 수 있지만 구성을 보지 않고도 말하기는 어렵지 않습니다. 또는 ... 아마 JMX와 jdwp가 서로 다른 인터페이스의 동일한 포트에 바인딩되어 있습니까? – Nicholas

+0

그냥 내 명령 줄 설정을 업데이트하고, JMX 포트를 5006으로 바꿨는데, 주사위가 없지만, VisualVM을 jstatd 인스턴스에 연결할 수 있습니다. – crockpotveggies

관련 문제