如何使用 PlatformMbeanServer 获取 Websphere 中的 Cluster 节点?

How to get Cluster nodes in Websphere using PlatformMbeanServer?

我已经在 WebSphere 中部署了一个 war 应用程序,作为 Server1 和 Server2 的一部分。 有一个集群有这两台服务器。 我想编写 java 代码作为我的 war 应用程序的一部分并获取集群节点详细信息。

  MBeanServer mbServer = ManagementFactory.getPlatformMBeanServer();
  Set mBeanSet = mbServer.queryMBeans(null, null);

以上代码没有列出cluster mbean,事实上,这里并没有列出所有的mbean。

同样来自 Jconsole,Cluster Mbean 未在此处列出。

我是不是漏了什么?

WebSphere MBean 与 JVM Mbean 不在同一个 MBean 服务器中。下面是列出所有 WebSphere MBean 的代码。由于 Cluster Mbean 在 Deployment Manager 上,我们必须在那里寻找它。

      ObjectName on = new ObjectName("WebSphere:*");          
      Set mbeans = AdminServiceFactory.getAdminService()
              .getDeploymentManagerAdminClient().queryMBeans(on, null);

      for (Object o: mbeans){             
          System.out.println("mbean: "+ o);
      }