2017-09-17 61 views
0

我已經在WebSphere中部署了一個war應用程序,作爲Server1和Server2的一部分。 有一個集羣有這兩個服務器。 我想寫作java代碼作爲我的戰爭應用程序的一部分,並獲取羣集節點的詳細信息。如何使用PlatformMbeanServer獲取Websphere中的羣集節點?

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

上面的代碼沒有列出集羣mbean,實際上並不是所有的mbean都在這裏列出。

從Jconsole也可以看出,Cluster Mbean沒有在這裏列出。

我錯過了什麼?

回答

1

WebSphere MBean與JVM Mbeans不在同一個MBean服務器中。這是列出所有WebSphere MBean的代碼。由於羣集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); 
     } 
+0

謝謝布魯斯!我將不得不使用反射調用此代碼,因爲此代碼可以在不同的容器(TomCat,WebLogic,WebSphere)中執行。所以我將不得不在條件下加載它。 – AKS

+0

當您打開安全性時,它會更有趣;-) –

+0

是的,您是對的。在安全開啓的情況下,它提供了「由com.ibm.websphere.management.exception.AdminException:com.ibm.websphere.management.exception.ConnectorNotAvailableException」引起的問題 – AKS

相關問題