일부 서버에서 JMX를 사용할 때 일관된 문제가 있습니다. 이것이 일부에서는 작동하지만 일부는 이상한 방식으로 연결을 거부하는 것으로 보입니다.Java JMX가 정말 이상한 케이스로 연결을 거부했습니다.
포트가 열려 있고 로컬 호스트 또는 다른 호스트에서 텔넷으로 연결할 수 있습니다.
다음은 결함이있는 것 중 하나에 연결할 때 jmxterm에서 얻은 것입니다.
포트가 열려있는 경우이 문제가 발생 :
포트가 정말 닫혀있는 경우 이런 일이 발생$>open 10.80.16.195:8091
#RuntimeIOException: Runtime IO exception: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused
:
여기$>open 10.80.16.195:9999
#RuntimeIOException: Runtime IO exception: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 10.80.16.195; nested exception is:
java.net.ConnectException: Connection refused]
는 JVM (바람둥이)을 시작하기에 연결하는 데 사용되는 매개 변수입니다 : /usr/lib/jvm/java-7-oracle/bin/java -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8091 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.80.16.195 -classpath /opt/Confluence.5/bin/bootstrap.jar -Dcatalina.base=/opt/Confluence.5 -Dcatalina.home=/opt/Confluence.5 org.apache.catalina.startup.Bootstrap start
java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
나는 비슷한 불평 관찰 다른 이들로부터는 아무런 이유도 없었습니다. 3-4 개의 서버를 사용했기 때문에 JMX 클라이언트가 될 가능성이 적어졌으며 모든 서버가 유사한 서버에서 작동하고 다른 서버에서는 작동하지 않는 것처럼 보입니다.
/etc/hosts
은 127.0.1.1이보고 된 것을 기억하기 때문에 데비안 시스템에이 설정이 있다는 것을 알고 있습니다. 당신은 아마 JMX 기계의 라우팅 주소로 바인더 제본되어 관찰 수동으로 IP를 지정하는 경우 즉, 외부에서 연결을 허용 할 수있는 유일한 방법이기 때문에
127.0.0.1 localhost
127.0.0.1 dowa-01.my.domain.com dowa-01
# by default the previous line had 127.0.1.1 instead and this was causing problems with JMX
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
, 즉이다.
이제는 무엇이 문제입니까?
미안하지만 그건 정말 나쁜 습관입니다. 필자는 설정 파일에 기계의 IP를 쓰지 않을 것입니다. JVM을 인스턴스화하는 스크립트조차도 공인 IP 주소를 감지하고 그것을 stat 명령에 사용합니다. – sorin
죄송합니다. 문서에서 실수를했습니다.'-java.rmi.server.hostname = 10.80.16.195'가 작동하도록하려면 ... – sorin
감사합니다. 어쨌든 감사합니다. 기계 고장 및 작동. – sorin