2017-09-17 5 views
0

J'ai déployé une application de guerre dans WebSphere, dans le cadre de Server1 et Server2. Il existe un cluster qui possède ces deux serveurs. Je veux écrire du code java dans le cadre de mon application de guerre et récupérer les détails du nœud du cluster.Comment obtenir des nœuds de cluster dans Websphere en utilisant PlatformMbeanServer?

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

Le code ci-dessus ne répertorie pas le cluster mbean. En fait, tous les mbeans ne sont pas listés ici.

De Jconsole aussi, Cluster Mbean n'est pas listé ici.

Ai-je raté quelque chose? WebSphere MBeans ne sont pas dans le même serveur MBean que les Mbeans JVM.

Répondre

1

Voici un code pour lister tous les MBeans WebSphere. Puisque le cluster Mbean est sur le gestionnaire de déploiement, nous devons le rechercher.

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

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

Merci Bruce! Je devrai appeler ce code en utilisant la réflexion car ce code peut être exécuté dans différents conteneurs (TomCat, WebLogic, WebSphere). Donc je vais devoir le charger dans des conditions. – AKS

+0

Ce sera encore plus amusant quand vous activez la sécurité ;-) –

+0

Oui, vous avez raison. Avec la sécurité ON, il donne "Causé par: com.ibm.websphere.management.exception.AdminException: com.ibm.websphere.management.exception.ConnectorNotAvailableException" – AKS