Applications dépendant de la disponibilité d'un moteur de messagerie

Si une application dépend de la disponibilité d'un moteur de messagerie, celui-ci doit démarrer avant qu'il soit possible d'exécuter l'application.

Si vous souhaitez que le serveur d'applications lance une application automatiquement, développez l'application de façon à ce qu'elle vérifie que le moteur de messagerie requis a démarré et, le cas échéant, qu'elle attende le démarrage du moteur de messagerie. Si vous utilisez cette technique dans un bean d'amorçage, la méthode de bean d'amorçage doit exécuter le travail (tester et attendre) dans une unité d'exécution distincte et utiliser les méthodes WorkManager standard pour que le démarrage du serveur d'applications ne soit pas différé.

L'exemple suivant est un fragment de code pour le test et l'attente d'un moteur de messagerie :
import java.util.Iterator;
import javax.management.ObjectName;                                     
import com.ibm.websphere.management.AdminService;                       
import com.ibm.websphere.management.AdminServiceFactory;      

    String messagingEngineName = "messagingEngineName"; // Moteur de messagerie dont on vérifie le démarrage, par exemple "node01.server1-bus1"
    boolean meStarted = false;                                            
                                                                        
    AdminService adminService = AdminServiceFactory.getAdminService();
    while (!meStarted) {                                                  
      String filterString = "WebSphere:type=SIBMessagingEngine,name=" + messagingEngineName + ",*";                  
      boolean foundBean = false;                                          
      ObjectName objectName = null;                                       
      try {                                                               
        ObjectName objectNameFilter = new ObjectName(filterString);     
        Iterator iter = adminService.queryNames(objectNameFilter,null).iterator();                                                       
        while (iter.hasNext()) {                                        
            objectName = (ObjectName) iter.next();                      
            foundBean = true;                                           
            break;                                                      
        }                                                               
      } catch (Exception e) {                                             
        e.printStackTrace();                                            
      }                                                                   
      if (foundBean) {                                                    
        // Un MBean de moteur de messagerie a été trouvé, ce qui signifie qu'il est initialisé, 
        // maintenant, vérifiez s'il est à l'état Démarré (Started).              
        meStarted = ((Boolean) adminService.invoke(objectName, "isStarted", null, null)).booleanValue();                               
      }                                                                   
                                                                        
      if (!meStarted) {                                                   
        // Veuillez patienter car le moteur de messagerie n'a pas encore démarré     
        Thread.sleep(5000);                                             
      }                                                                   
    }

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjb0003_
Nom du fichier : cjb0003_.html