2017-09-17 10 views
0

私は、Server1とServer2の一部としてWebSphereに1つのwarアプリケーションをデプロイしました。 これら2つのサーバーを持つクラスターがあります。 私は戦争アプリケーションの一部としてJavaコードを書いて、クラスタノードの詳細を取得したいと思います。PlatformMbeanServerを使用してWebsphereでクラスタノードを取得する方法は?

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

上記のコードはクラスタmbeanのリストではありません。実際、すべてのmbeanがここにリストされているわけではありません。

Jconsoleからも、クラスタMbeanはここに表示されません。

私に何か不足していますか?

答えて

1

WebSphere MBeanは、JVM Mbeanと同じMBeanサーバーにありません。すべてのWebSphere MBeanをリストするコードは次のとおりです。クラスタMbeanはデプロイメント・マネージャー上にあるので、そこで探す必要があります。

 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

はい、そうです。セキュリティーをONにすると、「原因:com.ibm.websphere.management.exception.AdminException:com.ibm.websphere.management.exception.ConnectorNotAvailableException」が返されます。 – AKS

関連する問題