この方法で MBean アプリを登録しました。
ObjectName appName = new ObjectName("testpack.Application:name=myApp");
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
mbs.registerMBean(this, appName);
次に、登録されているすべてのインスタンスを次の方法で取得しようとしています。
for (ObjectInstance instance : mbs.queryMBeans(appName, null)) {
System.out.println(instance.toString());
}
ただし、この同じ JVM で同じアプリの多くのインスタンスを実行しても、これは 1 つのインスタンスしか出力しません。私が誤解したことは何ですか?これを適切に行う方法は?
編集
すみません、MBean、JMX エージェント、サーバー、クライアントなどの基本的な用語を誤解していました。今、私のアプリは JMX クライアントである必要があり、共通の MBean を公開して、私のアプリ間で何らかの通信を行い、将来的には管理コンソールを所有する必要があります。
@Grayは、私が欲しいものについて尋ねていることを指摘してくれました。今、私は JMX を基礎から勉強していますが、いくつかの側面は明確でした。