Aplicativos com uma Dependência na Disponibilidade do Mecanismo do Sistema de Mensagens

Se um aplicativo depender de um mecanismo do sistema de mensagens estar disponível, o mecanismo do sistema de mensagens deverá ser iniciado antes da execução do aplicativo.

Se desejar que o servidor de aplicativos inicie um aplicativo automaticamente, você deverá desenvolver o aplicativo para testar se algum mecanismo necessário do sistema de mensagens foi iniciado e, se necessário, aguardar para que o mecanismo do sistema de mensagens seja iniciado. Se essa técnica for usada em um bean de inicialização, o método do bean de inicialização deverá executar o trabalho (testar e aguardar) em um encadeamento separado e usar os métodos WorkManager padrão), para que a inicialização do servidor de aplicativos não seja atrasada.

Para obter um exemplo de código para testar e esperar um mecanismo do sistema de mensagens, consulte a seguinte extração de código:
import java.util.Iterator;
import javax.management.ObjectName;                                     
import com.ibm.websphere.management.AdminService;                       
import com.ibm.websphere.management.AdminServiceFactory;      

    String messagingEngineName = "messagingEngineName"; // Mecanismo do sistema de mensagens para verificar se foi iniciado? por exemplo, "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) {                                                    
        // Foi localizado o MBean do mecanismo do sistema de mensagens, o que significa que ele foi inicializado, 
        // agora verifique se ele está no estado Iniciado.              
        meStarted = ((Boolean) adminService.invoke(objectName, "isStarted", null, null)).booleanValue();                               
      }                                                                   
                                                                        
      if (!meStarted) {                                                   
        // o mecanismo do sistema de mensagens ainda não está iniciado, portanto, fique suspenso (espere) alguns instantes...     
        Thread.sleep(5000);                                             
      }                                                                   
    }

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjb0003_
Nome do arquivo: cjb0003_.html