Resolução de Problemas de Nós JMS

Reveja possíveis problemas com nós JMS.

Em todos os casos de erro, se a causa subjacente for uma JMSException que tenha sido emitida pelo provedor JMS, a mensagem do evento bip do intermediário incluirá a mensagem de texto da JMSException para ajudar no diagnóstico.

Gerenciando Mensagens Formadas Incorretamente

Se uma mensagem não puder ser processada pelo nó JMSInput, ou tiver sido recuperada como parte de uma transação global, essa mensagem será restaurada para o destino de origem. A mensagem é então entregue novamente ao nó JMSInput.

Para evitar que mensagens malformadas interrompam o processamento de mensagens válidas, as propriedades do nó podem ser configuradas da seguinte forma:

Destino de Backout Esta propriedade especifica um destino JMS para o qual as mensagens restauradas serão roteadas se a propriedade de mensagem JMS JMSX_DeliveryCount, configurada pelo provedor JMS, exceder o limite de restauração.

O destino JMS deve ser aplicável ao modelo de mensagem que está sendo utilizado pelo nó; por exemplo, se um tópico de assinatura tiver sido configurado no nó, o destino JMS também deverá ser um tópico.

Limite de Backout Esta propriedade especifica o valor inteiro que controla se uma mensagem será enviada ao destino de restauração. Um valor do limite de 3 significa que, se o nó JMSInput receber uma Mensagem em que o valor da propriedade JMSX_DeliveryCount excede 3, a mensagem será enviada para o destino de restauração e removida do destino de origem.

Diagnosticando Problemas ao Utilizar Transações Coordenadas Globalmente:

Além do rastreio de serviço do intermediário, é fornecido outro log de rastreio para diagnosticar problemas que podem ocorrer quando um nó JMSInput ou JMSOutput participa de uma transação do fluxo de mensagens global. Ou seja, pelo menos um nó JMSInput ou JMSOutput no fluxo de mensagens possui a propriedade Modo de Transação configurada como global e a propriedade do fluxo de mensagens Transação Coordenada configurada como sim.

Para capturar o registro de rastreio, execute as seguintes etapas:
  1. Defina uma variável de ambiente chamada XAJMS_TRACEFILE que esteja disponível para o gerenciador de filas do intermediário.
  2. Configure o valor da variável de ambiente. Este valor deve ser uma cadeia de caracteres que representa o local e nome do arquivo do log de rastreio. Por exemplo, no Windows, a variável pode ser configurada da seguinte forma:
    XAJMS_TRACEFILE = c:\JMSSwitchLog
  3. Quando o gerenciador de filas do intermediário for iniciado, ele desempenhará uma etapa de recuperação para resolver transações do intermediário anteriores que o provedor JMS considera como pendentes. Este processo do gerenciador de filas grava em dois logs de rastreio durante esta etapa. Os dois registros de rastreio são:
    • XAJMS_TRACEFILE valuePID.txt, em que PID é o ID do processo do processo inicial do gerenciador de filas. Esse arquivo é produzido a partir da biblioteca JMSSwitch do intermediário; consulte Transacionalidade JMS para obter informações adicionais.

      Utilizar o valor de exemplo acima para a variável produz um arquivo chamado JMSSwitchLog2596.txt, no qual o ID do processo de inicialização do gerenciador de filas era 2596.

    • XAJMS_TRACEFILEXARecoveryTrace.txt que é produzido pelo componente de recuperação do intermediário que se conecta ao provedor JMS.
  4. Quando o gerenciador de filas do intermediário tiver concluído a recuperação, o intermediário iniciará e criará um arquivo chamado XAJMS_TRACEFILE valuePID.txt, em que PID é o ID do processo do processo inicial do gerenciador de filas. Esse arquivo é produzido a partir da biblioteca JMSSwitch do intermediário, consulte Transacionalidade JMS para obter informações adicionais.

Nenhum desses arquivos de rastreio requer formatação extra.

Este problema não é aplicável ao z/OS.

Problemas com Objetos Administrados de JNDI

Descrição do problema: O nó JMSInput ou JMSOutput não pode obter o Gerador de Contexto Inicial ou um objeto administrado de JNDI, como a Connection Factory ou destino JMS e é emitida uma mensagem BIP4640.

Ação corretiva
  1. Verifique se as ligações de JNDI foram construídas corretamente e podem ser alcançadas no local especificado no nó.
  2. Verifique se os valores especificados no nó para Contexto Inicial, Nome da Connection Factory e Fila de Origem ou Fila de Destino existem nas ligações JNDI.
  3. Certifique-se de que a palavra-chave correta seja utilizada para corresponder ao local das ligações:
    • file:// quando os objetos administrados foram criados em um arquivo .bindings
    • ldap:// quando os objetos administrados existem em um diretório LDAP
    • iiop:// quando corba é utilizado para acessar os objetos administrados
  4. Quando as ligações forem baseadas em arquivo, não especifique o nome do arquivo .bindings na propriedade do nó.
  5. Assegure que o nome do Depósito de Informações do Provedor de Contexto Inicial não inclua um caminho de arquivo.
  6. Certifique-se de que um destino JMS (Tópico ou Fila de Origem ou Fila de Destino) especificado na propriedade do nó exista nos objetos administrados de JNDI.
  7. Certifique-se de que os arquivos .jar Java do Provedor JMS tenham sido colocados no diretório de classes compartilhadas do intermediário em plataformas distribuídas ou, no z/OS, que estes arquivos .jar tenham sido definidos para o CLASSPATH do intermediário e quaisquer bibliotecas nativas definidas no LIBPATH do intermediário.
Os Nós JMS continuarão tentando obter os objetos administrados de JNDI. Corrija quaisquer problemas e reconstrua as ligações. O nó JMS deve detectar automaticamente as alterações e tentar iniciar.

Descrição do problema: Um nó JMSInput ou JMSOutput não pode conectar-se para um provedor JMS e emite uma mensagem BIP4648.

Ação corretiva:
  1. Verifique se o servidor de Provedor JMS está em execução. Se ele estiver off-line, inicie o servidor.
  2. Verifique se o servidor de Provedor JMS está disponível a partir do ambiente do intermediário.
  3. Certifique-se de que os arquivos .jar Java do Provedor JMS tenham sido colocados no diretório de classes compartilhadas do intermediário em plataformas distribuídas ou, no z/OS, que estes arquivos .jar tenham sido definidos para o CLASSPATH do intermediário e quaisquer bibliotecas nativas definidas no LIBPATH do intermediário.
Os nós JMS continuarão tentando conectar-se ao provedor JMS. Corrija os problemas e o nó JMS deve detectar automaticamente as alterações e tentar conectar-se ao provedor.

Descrição do problema: Um nó JMSInput ou JMSOutput não pode obter um destino JMS e emite uma mensagem BIP4642.

Ação corretiva
  1. Investigue a causa do problema descrito pela mensagem de exceção JMS que pode estar incluída na mensagem do evento BIP.
  2. Verifique se o nome do destino JMS definido na propriedade do nó relevante (Tópico ou Fila de Origem ou Fila de Destino) foi definido corretamente nos objetos administrados de JNDI.
  3. Verifique se o recurso do sistema subjacente utilizado pelo provedor JMS para o destino JMS foi configurado corretamente
Conceitos relacionados
Transacionalidade JMS
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:55

ac24877_