Dicas de Resolução de Problemas do Sistema de Mensagens
Estas dicas ajudam a resolver problemas de configuração do sistema de mensagens do WebSphere.
Para ajudar a identificar e resolver problemas com sistema de mensagens, é possível usar os recursos de rastreio e criação de log do WebSphere Application Server.
Para ajudar a identificar e resolver problemas com o sistema de mensagens, é possível usar recursos de rastreio e criação de log do WebSphere Application Server como descrito em Configurando o rastreio de componentes (CTRACE).
Se você vir mensagens de erro ou códigos de razão do IBM MQ em mensagens e logs do WebSphere Application Server, consulte a seção Mensagens do centro de informações do IBM MQ.
Verifique se o problema foi identificado e documentado usando os links em Diagnosticando e Corrigindo Problemas: Recursos para Aprendizado.
- A Configuração do Adaptador de Recursos do WebSphere MQ não É Atualizada Automaticamente e Requer Manutenção Manual
- Ocorrem Exceções java.lang.ClassNotFoundException Quando Você Instala um Fix Pack
- As Mensagens do WebSphere MQ para z/OS Não Estão Sendo Consumidas por Aplicativos JMS
- Um Aplicativo JMS Não Pode mais Enviar ou Receber Mensagens
- Um Atendente MDB Não Consegue Iniciar
- Problema ao Executar Aplicativos JMS com a Segurança Ativada
O servidor de aplicativos não é iniciado quando o código do idioma zh_TW.EUC é definido no Solaris
- Consumo de Memória do Servidor e Exceção java.lang.OutOfMemoryError ao Processar Mensagens JMS
- Erro de Clash de Atributos TopicConnectionFactory
- WSEC5061E: O Corpo do SOAP Não É uma Exceção Assinada
- Ocorre um Erro quando o IBM MQ É Usado como um Provedor JMS Externo
javax.jms.JMSException: MQJMS3024: impossível iniciar o listener MDB
As Mensagens da Estrutura do Canal do Provedor de Sistemas de Mensagens WebSphere MQ Aparecem durante a Inicialização do Servidor
A Configuração do Adaptador de Recursos do WebSphere MQ não É Atualizada Automaticamente e Requer Manutenção Manual
Normalmente o adaptador de recursos do IBM MQ é automaticamente atualizado ao aplicar um fix pack do WebSphere Application Server. Entretanto, se tiver atualizado manualmente o adaptador de recursos do IBM MQ em alguns nós em seu ambiente, aplicar um fix pack não atualiza automaticamente o adaptador de recursos que é usado pelos servidores nestes nós.
Para resolver esse problema, consulte Mantendo o adaptador de recursos IBM MQ.
Ocorrem Exceções java.lang.ClassNotFoundException Quando Você Instala um Fix Pack
J2CA0043E: An exception occurred while trying to instantiate a ResourceAdapter
JavaBean instance for the installed ResourceAdapter defined by key #removed#
As Mensagens do WebSphere MQ para z/OS Não Estão Sendo Consumidas por Aplicativos JMS
As mensagens do WebSphere MQ para z/OS não estão sendo consumidas pelos aplicativos JMS que são implementados no WebSphere Application Server e que usam connection factories ou especificações de ativação
- Configurando uma especificação de ativação para o provedor de sistemas de mensagens IBM MQ.
- Configurando um connection factory unificado para o provedor de sistemas de mensagens IBM MQ.
- Configurando um connection factory da fila para o provedor de sistemas de mensagens IBM MQ.
- Configurando um connection factory de tópico para o provedor de sistemas de mensagens IBM MQ.
Um Aplicativo JMS Não Pode mais Enviar ou Receber Mensagens
- Um ou mais beans de mensagens conectados por meio das especificações de ativação do JMS (Java™ Message Service).
- Um ou mais enterprise beans conectados por meio dos connection factories do JMS e destinos do JMS.
- Para obter uma visualização dos recursos JMS para um aplicativo fornecido, consulte o seguinte painel: Recursos do Sistema de Mensagens para este Aplicativo.
- Para obter uma visualização dos aplicativos e dos recursos JMS para um determinado destino do provedor de sistema de mensagens padrão, consulte o seguinte painel:Recursos de Aplicativo para este Destino.
Um Atendente MDB Não Consegue Iniciar
WMSG0019E: Incapaz de iniciar o Atendente MDB {0}, JMSDestination {1} : {2}
- Verifique se os recursos administrativos foram configurados corretamente. Por exemplo, utilize o console administrativo para verificar as propriedades da porta listener: Nome de JNDI de Destino e Nome de JNDI de Connection Factory. Verifique se as outras propriedades da porta do atendente, destino e fábrica de conexão estão corretas.
- Verifique se a fila existe e foi adicionada ao servidor JMS.
- Verifique se o gerenciador de filas e o servidor JMS iniciaram.
- Verifique se o Atendente do Gerenciador de Filas Remoto iniciou.
Se a segurança estiver ativada, verifique se um alias de autenticação gerenciado por componente foi especificado na connection factory de fila ou connection factory de tópico utilizado pelo bean acionado por mensagens.
Se a segurança estiver ativada, verifique se o ID do usuário usado para iniciar o listener MDB está autorizado corretamente. Para obter mais informações, consulte Problema ao Executar Aplicativos JMS com a Segurança Ativada.
Problema ao Executar Aplicativos JMS com a Segurança Ativada
WMSG0019E: Não é possível iniciar MDB Listener PSSampleMDB, JMSDestination Sample/JMS/listen:
javax.jms.JMSSecurityException:
Esse exemplo indica que as credenciais de segurança fornecidas não são válidas.- Se o mecanismo de autenticação estiver definido como Application, o aplicativo deverá fornecer credenciais válidas.
- Se o mecanismo de autenticação estiver definido como Contêiner, será
necessário configurar o connection factory JMS com um alias de autenticação gerenciado
por contêiner e assegurar-se de que o ID de usuário e a senha associados sejam válidos.
Como alternativa, ao executar no modo de transporte de ligações, você pode explorar o suporte de identidade de encadeamento do conector.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
MQJMS2013 Autenticação de segurança inválida fornecida para MQQueueManager
Se estiver usando o IBM MQ como um provedor JMS, com a conexão de JMS e usando modo de transportede ligações, e o usuário especificado não for um usuário registrado atualmente para o processo WebSphere Application Server, a autenticação de ligações de JMS pelo IBM MQ gera um erro de autenticação de segurança inválida.- Utilize credenciais de segurança. Para isto, certifique-se de que o usuário especificado é um usuário registrado atualmente para o processo WebSphere Application Server.
- Não utilize credenciais de segurança. No connection factory do IBM MQ, certifique-se de que as propriedades Alias de Autenticação Gerenciada por Componente e Alias de Autenticação Gerenciada por Contêiner não estão configuradas.
Para obter informações adicionais sobre a segurança do sistema de mensagens, consulte Protegendo o Sistema de Mensagens.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
O servidor de aplicativos não é iniciado quando o código do idioma zh_TW.EUC é definido no Solaris
Em Solaris, se configurar o código de idioma zh_TW.EUC e estiver usando o IBM MQ como um provedor JMS, seus servidores de aplicativos podem não ser iniciados.
Para resolver esse problema, defina as variáveis LANG e LC_ALL como zh_TW.
Consumo de Memória do Servidor e Exceção java.lang.OutOfMemoryError ao Processar Mensagens JMS
Ao usar o provedor de sistemas de mensagens padrão, as mensagens JMS são processadas por um mecanismo de sistemas de mensagens no processo do servidor de aplicativos. Essa abordagem consome memória do heap da JVM do servidor de aplicativos. Se houver processamento simultâneo significativo de mensagens grandes, e a quantidade de memória disponível ao heap da JVM não for suficiente para tratar esse evento, uma exceção java.lang.OutOfMemoryError será lançada e o servidor de aplicativos será finalizado.
- Ao implementar um bean acionado por mensagem que processa mensagens simultaneamente, calcule o possível consumo da memória do servidor de aplicativos por terminais simultâneos. Observe que cada terminal que está processando simultaneamente um pedido de mensagem inclui pelo menos duas vezes o tamanho da mensagem no heap da JVM do servidor e pode incluir mais, especialmente se uma transação em duas fases estiver ocorrendo.
- Inicie o console administrativo do WebSphere Application Server.
- Navegue para Tamanho de Heap Inicial e Tamanho de Heap Máximo. , em seguida, configure a quantidade de memória disponível para o heap da JVM do servidor de aplicativos configurando as propriedades
- Navegue em Terminais máximos simultâneos da especificação de ativação para esse bean acionado por mensagens. , em seguida, configure o número de terminais simultâneos do MDB que podem processar mensagens configurando a propriedade
Erro de Clash de Atributos TopicConnectionFactory
WSVR0017E: Error encountered binding the J2EE resource, TopicConnectionFactory, as <JNDI_NAME>
do arquivo:<RESOURCES_FILE> com.ibm.ws.runtime.component.binder.ResourceBindingException: configuração
inválida transmitida à lógica de ligação de recurso. RAZÃO: Falha ao criar o connection factory:
Ocorreu erro ao construir AdminObject, código do erro: conflito de atributos TopicConnectionFactory :
conflito de atributos TopicConnectionFactory
Este problema é causado pela configuração do factory de conexão de tópico do JMS que é usado para criar o assinante, que especifia uma versão de broker de "Básica" e um valor de "Broker". O broker "Básico" IBM MQ (broker MA0C SupportPac) does not support "Broker" message selection.
Para resolver este problema, altere o factory de conexão de tópico do JMS para especificar um valor de seleção de mensagens de "Cliente", que é o único valor suportado para o broker Básico do IBM MQ (broker MA0C SupportPac).
WSEC5061E: O Corpo do SOAP Não É uma Exceção Assinada
com.ibm.wsspi.wssecurity.SoapSecurityException:
WSEC5061E: O Corpo SOAP não está assinado; nulo
- Um aplicativo de serviço da web, configurado com o Web Services Security, está em execução em um aplicativo de serviço que tem a segurança do WebSphere Application Server ativada.
- Esse aplicativo de serviço da Web usa o transporte JMS para enviar as solicitações SOAP para um serviço da Web de destino.
- O recurso JMS usa um servidor IBM MQ remoto para se conectar a uma fila de IBM MQ.
- Outro aplicativo de serviço da web idêntico, configurado para usar a mesma fila por meio do mesmo servidor IBM MQ, é executado em um servidor de aplicativos diferente que não tem a segurança do WebSphere Application Server ativada.
O problema ocorre quando um pedido enviado do aplicativo original é processado pela mesma fila, mas para o servidor de aplicativos diferente no qual a segurança não está ativada.
- Crie um gerenciador de filas exclusivo com uma porta exclusiva no servidor IBM MQ.
- Reconfigure os recursospara usar o novo gerenciador de filas e porta; por exemplo, usando o console administrativo do WebSphere Application Server para alterar as propriedades do factory de conexão da fila do IBM MQ, como descrito em Configurando um connection factory da fila para o provedor de sistemas de mensagens IBM MQ.
- Execute novamente o aplicativo.
Ocorre um Erro quando o IBM MQ É Usado como um Provedor JMS Externo
Ao usar o IBM MQ como um provedor JMS externo, e enviar uma mensagem para a fila do IBM MQ em uma transação gerenciada pelo usuário, a mensagem pode chegar na fila de destino antes de a transação ser confirmada. Este problema ocorre quando o gerenciador de recursos do IBM MQ não está listado na transação gernciada pelo usuário.
Para resolver esse problema, utilize uma transação gerenciada por contêiner.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
javax.jms.JMSException: MQJMS3024: impossível iniciar o listener MDB
- Configure o ID do cliente como uma propriedade do tcf, usando a ferramenta jmsadmin. Por exemplo, altere tcf(myTCF) clientid(myID).
- Configure o ID do cliente programaticamente usando TopicConnection.setClientID()
- Configure o campo do ID do cliente administrativamente, usando o console administrativo para modificar o Configurações de connection factory de tópico do provedor de sistemas de mensagens IBM MQ.
![[z/OS]](../images/ngzos.gif)
As Mensagens da Estrutura do Canal do Provedor de Sistemas de Mensagens WebSphere MQ Aparecem durante a Inicialização do Servidor
A mensagem a seguir pode ser exibida várias vezes no processo auxiliar da região de controle durante a inicialização do servidor, mesmo que a conexão seja bem-sucedida nas novas tentativas subsequentes. Essa mensagem é emitida devido à maneira assíncrona na qual o canal proxy z/OS TCP é iniciado e não indica que qualquer erro tenha ocorrido.
Trace: 2009/06/17 08:24:41.434 01 t=9C6B58 c=UNK key=P8 (00000011)
Description: Log Java Message
Mensagem: CHFW0030E: Erro no início da sequência _InboundTCPProxyBridgeService, devido à
exceção com.ibm.wsspi.channel.framework.exception.RetryableChannelException:
An exception was thrown when attempting to start the TCPProxyChannel
com.ibm.ws.channel.framework.imp l.ChannelFrameworkImpl
Essas mensagens podem ser
acompanhadas pela saída First Failure Data Capture (FFDC) semelhante ao seguinte exemplo:Exception = com.ibm.wsspi.channel.framework.exception.RetryableChannelException
Source = com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal
ID do probe = 2577
Dump de Pilha = com.ibm.wsspi.channel.framework.exception.RetryableChannelException:
An exception was thrown when attempting to start the TCPProxyChannel
at com.ibm.ws.tcpchannelproxy.jfap.impl.TCPProxyInboundChannel.start(TCPProxyInboundChannel.java:153)
at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChannelInChain(ChannelFrameworkImpl.java:1410)
at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal(ChannelFrameworkImpl.java:2863)
at com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl.startChainInternal(WSChannelFrameworkImpl.java:960)
at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal(ChannelFrameworkImpl.java:2794)
at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChain(ChannelFrameworkImpl.java:2779)
at com.ibm.ws.runtime.component.ChannelFrameworkServiceImpl.startChain(ChannelFrameworkServiceImpl.java:666)
at com.ibm.ws.sib.jfapchannel.framework.impl.ChannelFrameworkReference$TCPProxy
BridgeServiceInboundChainStartupRunnable.run(ChannelFrameworkReference.java:1641)
em com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
Caused by: com.ibm.ws.tcpchannelproxy.jfap.NotYetInitializedException: Server is not yet initialized
at com.ibm.ws.tcpchannelproxy.jfap.TCPProxyBridgeServicesImpl.startListening(TCPProxyBridgeServicesImpl.java:558)
at com.ibm.ws.tcpchannelproxy.jfap.impl.TCPProxyInboundChannel.start(TCPProxyInboundChannel.java:131)
... 8 more
Trace: 2009/06/17 08:24:51.449 01 t=9C6B58 c=UNK key=P8 (13007002)
ThreadId: 00000003
FunctionName: com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl
SourceId: com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl
Category: AUDIT
ExtendedMessage: BBOO0222I: CHFW0019I: O Serviço do Canal de Transporte foi iniciado
chain _InboundTCPProxyBridgeService.