Conseils pour l'identification et la résolution des problèmes liés à la messagerie
Ces conseils vous aideront à identifier et à résoudre les problèmes liés à votre configuration de messagerie WebSphere.
Pour vous aider à identifier et résoudre les problèmes liés à la messagerie, vous pouvez utiliser les fonctions de trace et de consignation de WebSphere
Application Server.
Pour vous aider à identifier et résoudre les problèmes liés à la messagerie, vous pouvez également utiliser les fonctions
de trace et de consignation de WebSphere
Application Server décrites dans Configuration de la trace des composants (CTRACE).
- Identification et résolutions des incidents liés à la messagerie
- Identification et résolution des incidents liés aux beans gérés par message
- Identification et résolution des problèmes liés aux technologies d'intégration des services
- Fournisseur de messagerie par défaut : Conseils pour l'identification et la résolution des problèmes
Si vous voyez des messages d'erreur IBM MQ ou des codes anomalie dans les messages et journaux WebSphere Application Server, reportez-vous à la section Messages du centre de documentation IBM MQ.
Vérifiez dans la page si le problème a été identifié et documenté à l'aide des liens présents dans Diagnostic et résolution des incidents : Ressources d'apprentissage.
- La configuration de d'adaptateur de ressources WebSphere MQ n'est pas automatiquement mise à jour et requiert une maintenance manuelle
- Des exceptions java.lang.ClassNotFoundException surviennent lors de l'installation d'un groupe de correctifs
- Les messages de WebSphere MQ for z/OS ne sont pas consommés par les applications JMS.
- Une application JMS ne peut plus envoyer ou recevoir des messages.
- Un module d'écoute MDB ne démarre pas
- Incidents lors de l'exécution des applications JMS avec la sécurité activée
Le serveur d'applications ne démarre pas lorsque la langue zh_TW.EUC est définie sous Solaris
- Utilisation de la mémoire du serveur et exceptionjava.lang.OutOfMemoryError lors du traitement des messages JMS
- Conflits d'attributs TopicConnectionFactory
- WSEC5061E: Exception de corps SOAP non signé
- Erreur lors de l'utilisation de IBM MQ comme fournisseur JMS externe
javax.jms.JMSException: MQJMS3024: impossible de démarrer le programme d'écoute MDB
Les messages du canevas de canal du fournisseur de messagerie WebSphere MQ apparaissent lors du démarrage du serveur
La configuration de d'adaptateur de ressources WebSphere MQ n'est pas automatiquement mise à jour et requiert une maintenance manuelle
Généralement, l'adaptateur de ressources IBM MQ est automatiquement mis à jour lorsque vous appliquez un groupe de correctifs WebSphere Application Server. Toutefois, si vous avez mis manuellement à jour l'adaptateur de ressources IBM MQ sur certains noeuds de votre environnement, l'application d'un groupe de correctifs ne met pas automatiquement à jour l'adaptateur de ressources utilisé par les serveurs de ces noeuds.
Pour résoudre ce problème, voir Gestion de l'adaptateur de ressources IBM MQ.
Des exceptions java.lang.ClassNotFoundException surviennent lors de l'installation d'un groupe de correctifs
J2CA0043E: An exception occurred while trying to instantiate a ResourceAdapter.
JavaBean instance for the installed ResourceAdapter defined by key #removed#
Les messages de WebSphere MQ for z/OS ne sont pas consommés par les applications JMS.
Les messages provenant de WebSphere MQ for z/OS ne sont pas consommés par les applications JMS qui sont déployées dans WebSphere Application Server et qui utilisent des fabriques de connexions ou des spécifications d'activation.
- Configuration d'une spécification d'activation pour le fournisseur de messagerie IBM MQ.
- Configuration d'une fabrique de connexions unifiée pour le fournisseur de messagerie IBM MQ.
- Configuration d'une fabrique de connexions de file d'attente pour le fournisseur de messagerie IBM MQ.
- Configuration d'une fabrique de connexions de rubrique pour le fournisseur de messagerie IBM MQ.
Une application JMS ne peut plus envoyer ou recevoir des messages.
- Un ou plusieurs beans de message connectés via les spécifications d'activation JMS (Java™ Message Service).
- Un ou plusieurs beans enterprise connectés via des fabriques de connexions JMS et des destinations JMS.
- Pour afficher une vue des ressources JMS d'une application donnée, reportez-vous au panneau suivant : Ressources de messagerie pour cette application.
- Pour afficher une vue des applications et des ressources JMS d'une destination donnée, reportez-vous au panneau suivant : Ressources d'application pour cette destination.
Un module d'écoute MDB ne démarre pas
WMSG0019E: Unable to start MDB Listener {0}, JMSDestination {1} : {2}
- Vérifiez que les ressources d'administration ont été configurées correctement. Par exemple, utilisez la console d'administration pour vérifier les propriétés du port du module d'écoute : le nom de la destination JNDI et le nom JNDI de la fabrique de connexions. Vérifiez que les autres propriétés du port du module d'écoute, de la destination, et de la fabrique de connexions sont correctes.
- Vérifiez que la file d'attente existe et a été ajoutée au serveur JMS.
- Vérifiez que le gestionnaire de files d'attente et le serveur ont démarré.
- Vérifiez que le gestionnaire de files d'attente a démarré.
Si la sécurité est activée, vérifiez qu'un alias d'authentification géré par composant a été indiqué dans la fabrique de connexions ou la fabrique de connexions de rubrique utilisée par le bean géré par message.
Si la sécurité est activée, vérifiez que l'ID utilisateur utilisé pour démarrer le module d'écoute MDB détient les droits d'accès appropriés. Pour plus d'informations, voir Incidents lors de l'exécution des applications JMS avec la sécurité activée.
Incidents lors de l'exécution des applications JMS avec la sécurité activée
WMSG0019E: Unable to start MDB Listener PSSampleMDB, JMSDestination Sample/JMS/listen :
javax.jms.JMSSecurityException:
Cet exemple indique que les données d'identification fournies ne sont pas valides.- Si la valeur Application est attribuée au mécanisme d'authentification, l'application doit obligatoirement fournir des justificatifs valides.
- Si le mécanisme d'authentification est défini sur Conteneur,
vous devez configurer la fabrique de connexions JMS à l'aide d'un alias d'authentification géré par conteneur,
et vérifier que l'ID utilisateur et le mot de passe associés sont valides.
Vous pouvez également, lors de l'exécution en mode de transport de liaisons, exploiter la prise en charge de l'identité d'unité d'exécution du connecteur.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
MQJMS2013 invalid security authentication supplied for MQQueueManager:
Si vous utilisez
IBM MQ comme fournisseur JMS, avec une connexion JMS et en utilisant le mode de transport de liaisons, et que l'utilisateur indiqué n'est pas l'utilisateur connecté actuellement au processus WebSphere
Application Server, l'authentification des liaisons JMS par IBM MQ génère une erreur d'authentification de sécurité non valide.- Utilisez les données d'identification. Pour ce faire, vérifiez que l'utilisateur spécifié est l'utilisateur connecté pour le processus WebSphere Application Server.
- N'utilisez pas les données d'identification. Sur la fabrique de connexions IBM MQ, vérifiez que les propriétés Alias d'authentification géré par composant et Alias d'authentification géré par conteneur ne sont pas définies.
Pour plus d'informations sur la sécurité de la messagerie, voir Sécurisation de la messagerie.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Le serveur d'applications ne démarre pas lorsque la langue zh_TW.EUC est définie sous Solaris
Sous Solaris, si vous paramétrez la langue sur zh_TW.EUC et que vous utilisez IBM MQ comme fournisseur JMS, il se peut que vos serveurs d'applications ne démarrent pas.
Pour résoudre cet incident, définissez les variables LANG et LC_ALL sur zh_TW.
Utilisation de la mémoire du serveur et exceptionjava.lang.OutOfMemoryError lors du traitement des messages JMS
Lorsque vous utilisez le fournisseur de messagerie par défaut, les messages JMS sont traités par un moteur de messagerie dans le cadre du processus du serveur d'applications. Cette approche consomme de la mémoire provenant de la pile JVM du serveur d'applications. S'il n'y a aucun autre traitement simultané de messages volumineux et que la quantité de mémoire disponible sur le segment JVM ne suffit pas pour traiter cet événement, alors l'exception java.lang.OutOfMemoryError est émise et le serveur d'applications est arrêté.
- Lorsque vous déployez un bean géré par message qui traite simultanément des messages, vous devez évaluer l'utilisation éventuelle de la mémoire du serveur d'applications par les noeuds finals actifs simultanément. Vous remarquerez que chaque noeud final qui traite simultanément un message génère un message au moins deux fois volumineux pour les segments de mémoire de la machine virtuelle Java et peut requérir plus d'espace, en particulier lors de transactions à deux phases.
- Lancez la console d'administration WebSphere Application Server.
- Accédez à Taille initiale du segment de mémoire et Taille maximale du segment de mémoire. , puis configurez la quantité de mémoire disponible pour le segment de mémoire de la JVM du serveur d'applications en définissant les propriétés
- Accédez à Nombre max. de noeuds finals concurrents de la spécification d'activation pour ce bean géré par message. , puis configurez le nombre de noeuds finaux de bean géré par message concurrents pouvant traiter des messages en définissant la propriété
Conflits d'attributs TopicConnectionFactory
WSVR0017E: Error encountered binding the J2EE resource, TopicConnectionFactory, as <JNDI_NAME>
from file:<RESOURCES_FILE> com.ibm.ws.runtime.component.binder.ResourceBindingException: invalid
configuration passed to resource binding logic. REASON: Failed to create connection factory:
Error raised constructing AdminObject, error code: TopicConnectionFactory attributes clash :
TopicConnectionFactory attributes clash
Cet incident est dû à la configuration de la fabrique de connexions JMS utilisée pour créer l'abonné, qui indique une version de courtier "Basic" et une valeur de sélection des messages "Broker". Le courtier "Basic" IBM MQ (courtier SupportPac MAOC) ne prend pas en charge la sélection de message "Broker".
Pour résoudre cet incident, modifiez la fabrique de connexions des sujets JMS pour indiquer la valeur de sélection des messages "Client", qui est la seule valeur prise en charge pour le courtier IBM MQ Basic (courtier SupportPac MA0C).
WSEC5061E: Exception de corps SOAP non signé
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5061E: The SOAP Body is not signed.; null
- Une application de service Web, configurée avec la sécurité des services Web, est exécutée sur un serveur d'applications sur lequel la sécurité WebSphere Application Server est activée.
- Cette application de service Web utilise le transport JMS pour envoyer des demandes SOAP vers un service Web cible.
- La ressource JMS utilise un serveur IBM MQ distant pour se connecter à une file d'attente IBM MQ.
- Une autre application de service Web identique, configurée pour utiliser la même file d'attente via le même serveur IBM MQ, s'exécute sur un autre serveur d'applications sur lequel la sécurité WebSphere Application Server n'est pas activée.
Le problème se produit lorsque une demande envoyée à partir du serveur d'applications d'origine est traitée via la même file d'attente, mais à destination d'un autre serveur d'applications sur lequel la sécurité n'est pas activée.
- Créez un seul gestionnaire de files, doté d'un port unique sur le serveur IBM MQ.
- Reconfigurez les ressources JMS de façon à utiliser le nouveau gestionnaire de file d'attente et le nouveau port ; par exemple, à l'aide de la console d'administration WebSphere Application Server pour modifier les propriétés de la fabrique de connexions de file d'attente IBM MQ, comme décrit dans Configuration d'une fabrique de connexions de file d'attente pour le fournisseur de messagerie IBM MQ.
- Exécutez à nouveau l'application.
Erreur lors de l'utilisation de IBM MQ comme fournisseur JMS externe
Lorsque vous utilisez IBM MQ en tant que fournisseur JMS externe et que vous envoyez un message vers une file d'attente IBM MQ au sein d'une transaction gérée par l'utilisateur, le message peut arriver à la file d'attente de destination avant que la transaction ait été validée. Cet incident survient lorsque le gestionnaire de ressources IBM MQ n'est pas inscrit dans la transaction gérée par l'utilisateur.
Pour résoudre cet incident, utilisez une transaction gérée par conteneur.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
javax.jms.JMSException: MQJMS3024: impossible de démarrer le programme d'écoute MDB
- A l'aide de l'outil jmsadmin, définissez l'ID client en tant que propriété du tcf. Par exemple, modifiez tcf(monTCF) clientid(monID).
- Définissez l'ID client à l'aide d'un programme en utilisant TopicConnection.setClientID()
- Définissez la zone ID client de manière administrative, en modifiant la section Paramètres de fabrique de connexions de rubriques du fournisseur de messagerie IBM MQ à l'aide de la console d'administration.
![[z/OS]](../images/ngzos.gif)
Les messages du canevas de canal du fournisseur de messagerie WebSphere MQ apparaissent lors du démarrage du serveur
Le message suivant peut s'afficher plusieurs fois dans le processus auxiliaire de la région de contrôle pendant le démarrage du serveur, même si la connexion aboutit lors des tentatives suivantes. Ce message est émis à cause du démarrage asynchrone du canal de proxy TCP z/OS et ne signifie pas qu'une erreur s'est produite.
Trace: 2009/06/17 08:24:41.434 01 t=9C6B58 c=UNK key=P8 (00000011)
Description: Log Java Message
Message: CHFW0030E: Error starting chain _InboundTCPProxyBridgeService because
of exception 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
Ces messages peuvent être accompagnés d'une sortie FFDC (First Failure Data
Capture) semblable à l'exemple suivant :Exception = com.ibm.wsspi.channel.framework.exception.RetryableChannelException
Source = com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal
probeid = 2577
Stack Dump = 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)
at 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: The Transport Channel Service has started
chain _InboundTCPProxyBridgeService.