0

以下のコードを使用して、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

4

1 に答える 1

3

JMXMP クライアントを使用するには、JMXMP コネクタ サーバーを実行している必要があります。[デフォルト] RMI コネクタ サーバーに接続できません。

実行中のサーバーにインストールできる JMXMP エージェントについては、この質問も参照してください。

于 2016-04-21T13:42:57.357 に答える