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.

Remarque : Cette rubrique fait référence à un ou plusieurs des fichiers journaux de serveur d'applications. Il est recommandé de configurer le serveur de telle sorte qu'il utilise l'infrastructure de journalisation et de trace HPEL (High Performance Extensible Logging) à la place des fichiers SystemOut.log, SystemErr.log, trace.log et activity.log sur les systèmes distribués et IBM® i. Vous pouvez également utiliser HPEL conjointement avec vos fonctions de journalisation z/OS natives. Si vous utilisez l'infrastructure HPEL, vous pouvez accéder à toutes les informations de journalisation et de trace en utilisant l'outil de ligne de commande LogViewer à partir de votre répertoire bin de profil de serveur. Pour plus d'informations sur l'utilisation de HPEL, voir les informations sur l'utilisation de HPEL en vue du traitement des incidents liés aux applications.

[IBM i][AIX Solaris HP-UX Linux Windows]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.

[z/OS]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).

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

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

Si, lors de l'installation d'un groupe de correctifs, le message suivant est émis, suivez les instructions de la rubrique Gestion de l'adaptateur de ressources IBM MQ pour tenter de résoudre le problème :
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.

Une application JMS ne peut plus envoyer ou recevoir des messages.

Lorsque vous configurez une application pour qu'elle utilise le fournisseur de messagerie par défaut, associez-la à l'un des jeux de ressources suivants :
  • 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 vous aider à résoudre cet incident, vous pouvez utiliser les panneaux de la console d'administration pour examiner la configuration de vos applications et ressources JMS.

Un module d'écoute MDB ne démarre pas

Si un module d'écoute MDB déployé sur un port d'écoute ne démarre pas, le message suivant s'affiche :
WMSG0019E: Unable to start MDB Listener {0}, JMSDestination {1} : {2} 
Pour faciliter la résolution de cet incident, vérifiez les facteurs suivants :
  • 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é.
  • [AIX Solaris HP-UX Linux Windows][IBM i]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.[z/OS]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

Lors de la tentative d'exécution d'une application JMS avec la sécurité activée, vous pouvez rencontrer des incidents d'authentification signalés par un ou plusieurs des messages d'erreur suivants :
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.
Pour résoudre cet incident, vérifiez la configuration de la sécurité :
  • 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. [z/OS]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][IBM i]
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.
Pour résoudre cet incident, vérifiez la configuration de sécurité. Lorsque vous configurez le fournisseur JMS IBM MQ pour qu'il utilise le mode de transport de liaisons, paramétrez la propriété Type de transport sur BINDINGS dans la fabrique de connexions de file d'attente de IBM MQ. A ce stade, choisissez également l'une des options suivantes :
  • 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]

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é.

Pour résoudre cet incident, vous devez évaluer le nombre potentiel de processeurs ou de destinataires simultanés de messages et la taille des messages, puis définir la taille des segments de la machine virtuelle Java du serveur d'applications pour prendre en charge la procédure. Par exemple :
  1. 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.
  2. Lancez la console d'administration WebSphere Application Server.
  3. Accédez à Serveurs > Types de serveurs > Serveurs d'applications WebSphere > nom_serveur > Gestion des processus et Java > Définition de processus > Machine virtuelle Java, 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 Taille initiale du segment de mémoire et Taille maximale du segment de mémoire.
  4. Accédez à Ressources > JMS > Fournisseurs JMS > Fournisseur de messagerie par défaut > Spécifications d'activation > nom_spécification_activation, puis configurez le nombre de noeuds finaux de bean géré par message concurrents pouvant traiter des messages en définissant la propriété Nombre max. de noeuds finals concurrents de la spécification d'activation pour ce bean géré par message.

Conflits d'attributs TopicConnectionFactory

Lorsque vous créez un abonné de rubrique JMS qui utilise le fournisseur de messagerie IBM MQ, le message d'erreur suivant peut s'afficher dans le fichier SystemOut.log :
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é

Lorsque vous exécutez une application de services Web sécurisée qui utilise le transport JMS dans le fournisseur de messagerie IBM MQ, le message d'erreur suivant peut apparaître dans le fichier SystemOut.log :
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5061E: The SOAP Body is not signed.; null
Cet incident se produit dans les circonstances suivantes :
  • 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.

Pour résoudre l'incident, procédez comme suit :
  1. Créez un seul gestionnaire de files, doté d'un port unique sur le serveur IBM MQ.
  2. 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.
  3. 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][IBM i]

javax.jms.JMSException: MQJMS3024: impossible de démarrer le programme d'écoute MDB

Cette erreur peut se produire si vous utilisez un ID client non initialisé (c'est-à-dire, un ID client qui n'est associé à aucun abonnement durable). Pour résoudre ce problème, définissez l'ID client de l'une des trois façons suivantes :
  • 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]

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
Enfin le message suivant doit s'afficher pour indiquer que le démarrage du canal de proxy TCP z/OS a abouti :
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.

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rmj_prob0
Nom du fichier : rmj_prob0.html