以下のコードを使用して、Java クライアントから Tomcat インスタンスへの JMX 接続を確立しようとしています。
JMXServiceURL url = new MXServiceURL("service:jmx:jmxmp://<host>:<port>"); //line 1
JMXConnector jmxc = JMXConnectorFactory.connect(url); //line 2
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
どこ
ホスト = Tomcat インスタンスが実行されているリモート マシン
ポート = jmx が有効なポート。私のコードでは 9840 です
私のtomcat setenv.shファイルは、JMXを有効にするために以下の構成で編集されています
export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9840 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
しかし、プログラムを実行すると、2 行目でハングします。
JMXServiceURL target = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi")
JMXMP の代わりに RMI を使用するように1 行目を変更
すると、実行され、さまざまな MX Bean にアクセスできるようになります。
そのため、JMXMP プロトコルを使用すると接続できません。RMIプロトコルを使えば接続できます。JMXMP を使用すると、何が問題になる可能性がありますか?
ありがとう、nks