Resolução de Problemas de Nós JMS

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

Gerenciando Mensagens Formadas Incorretamente

Se uma mensagem não puder ser processada pelo nó JMSInput ou se seu rollback tiver sido efetuado como parte de uma transação Global, será efetuado o backout da mensagem para o destino de origem. A mensagem é entregue novamente no 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 Este é um destino JMS para o qual as mensagens das quais foi efetuado backout serão roteadas se a propriedade da mensagem JMS JMSX_DeliveryCount, configurada pelo provedor JMS, exceder o limite de backout.

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 Este é o valor inteiro que controla se uma mensagem será enviada para o destino de backout. Um valor do limite de 3 significa que, se o nó JMSInput receber uma Mensagem na qual o valor da propriedade JMSX_DeliveryCount excede 3, a mensagem será enviada para o destino de backout e será removida do destino de origem.

Diagnosticando Problemas ao Utilizar Transações Coordenadas Globalmente:

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

Para capturar o registro de rastreio, execute as seguintes etapas:
  1. Defina uma variável de ambiente chamada XAJMS_TRACEFILE que está disponível para o Gerenciador de Filas do intermediário.
  2. Configure o valor da variável de ambiente. Deve ser uma cadeia de caracteres que representa o local e o nome do arquivo do registro 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 é iniciado, ele executa uma etapa de recuperação para resolver quaisquer transações de intermediário anteriores que o provedor JMS considera pendente. Esse processo do Gerenciador de Filas emitirá saída de dois registros de rastreio durante esse estágio. Os dois registros de rastreio são:
    • <XAJMS_TRACEFILE value><PID>.txt, em que PID é o ID do processo de início 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, em que o ID do processo de inicialização do Gerenciador de Filas era 2596.

    • <XAJMS_TRACEFILE><XARecoveryTrace>.txt que é produzido pelo componente de recuperação de intermediário que se conecta ao provedor JMS.
  4. Depois que o Gerenciador de Filas do intermediário tiver concluído a recuperação, o intermediário inicia e cria um arquivo denominado <valor XAJMS_TRACEFILE><PID>.txt, em que PID é o ID do processo de início 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.

Isso não se aplica ao Z/OS.

Problemas com Objetos Administrados de JNDI

Descrição do problema: O nó JMSInput ou JMSOutput não pode obter o Depósito de Informações do Provedor de Contexto Inicial nem um objeto administrado de JNDI, como a Connection Factory ou o Destino JMS e uma mensagem bip4640 é emitida.

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 o Contexto Inicial, o Nome da Connection Factory e a Fila de Origem ou Fila de Destino existem nas ligações de JNDI.
  3. Assegure que a palavra-chave correta seja utilizada para corresponder ao local das ligações
    • file:/ quando os objetos administrados tiverem sido 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 são baseadas em arquivo, não especifique o nome de arquivo .bindings no atributo 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. Assegure que um Destino JMS (Tópico, Fila de Origem ou Fila de Destino) especificado nos atributos de nó existem nos objetos administrados de JNDI.
  7. Assegure que os .jars Java do Provedor JMS foram colocados no diretório shared-classes do intermediário nas plataformas distribuídas ou, no z/OS, que esses jars foram definidos para o CLASSPATH do intermediário e quaisquer bibliotecas nativas definidas no LIBPATH do intermediário.
Os Nós JMS continuarão a tentar 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 para um provedor JMS e emite uma mensagem bip4648.

Ação corretiva:
  1. Verifique se o servidor de Provedor JMS está em execução. Inicie-o se ele estiver off-line.
  2. Verifique se o servidor de Provedor JMS está disponível a partir do ambiente do intermediário.
  3. Assegure que os .jars Java do Provedor JMS foram colocados no diretório shared-classes do intermediário nas plataformas distribuídas ou, no z/OS, que esses jars foram definidos para o CLASSPATH do intermediário e quaisquer bibliotecas nativas definidas no LIBPATH do intermediário.
Os Nós JMS continuarão a tentar 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 atributo de destino JMS definido no atributo do nó (Tópico, 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
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac24877_