jstatd を使用して、サーバー上で実行されているすべての Java プロセスを監視しようとしています。VisualVM に接続して実行中のすべてのプロセスを確認できるように十分にセットアップしました。ほとんどの表示は問題なく動作しますが、特定のもの (特に CPU 使用率と MBean) が表示されません。代わりに、次のように述べています。
MBean ブラウザ
JMX エージェントへの JMX 接続を確立できなかったため、データを利用できません。
問題は、アプリケーションがjstatd
ローカルのレジストリではなく RMI レジストリを介して「アナウンス」する必要があることだと考えたため、次のことを試しました (これらの提案に従って) が、それでも表示されません。私が試したコードは次のとおりです。
public class JmxRmiConnectorTest {
public static void main(String[] args) throws Exception {
Registry rmiRegistry = LocateRegistry.createRegistry(9994);
String svc =
"service:jmx:rmi://localhost:9994/jndi/rmi://localhost:1099/connector";
MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
JMXServiceURL url = new JMXServiceURL(svc);
RMIConnectorServer rmiServer = new RMIConnectorServer(url, null, mbeanServer);
rmiServer.start();
Thread.sleep(100000);
rmiServer.stop();
}
}
jstatd で見たときに、MBean と CPU 使用率を VisualVM に表示するにはどうすればよいですか?