Détermination des raisons pour lesquelles les messages point-à-point n'arrivent pas via un point de message éloigné

Vous pouvez effectuer une série de vérifications pour déterminer pourquoi les messages point-à-point n'arrivent pas à leur destination sur un bus d'intégration de services lorsqu'ils sont acheminés via un point de messages éloigné.

Avant de commencer

Suivez la procédure de la rubrique Investigating why point-to-point messages are not arriving, laquelle contient des vérifications préliminaires et des tâches d'investigation que vous devriez effectuer avant de réaliser cette tâche.

Pourquoi et quand exécuter cette tâche

Effectuez cette tâche dans le cadre de celles de la rubrique Investigating why point-to-point messages are not arriving. Cette tâche décrit comment examiner le flux de messages dans un scénario de messagerie point-à-point où les messages sont acheminés via un point de messages éloigné. Dans le diagramme suivant, un bus contient trois moteurs de messagerie : ME1, ME2 et ME3. L'application productrice est connectée à ME1 et l'application consommatrice à ME3. Les messages sont produits sur ME1 et acheminés de ME1 vers ME3 via ME2. Ce scénario ne couvre que ME1 et ME2. ME1 héberge un point de messages éloigné qui représente le point de messages hébergé par ME2. ME1 est le moteur de messagerie auquel est associée l'application productrice et ME2 le moteur de messagerie hébergeant le point de file d'attente.

Ces moteurs de messagerie sont mentionnés dans les étapes suivantes.

Figure 1. Production de message point à point à l'aide d'un point de message éloignéCette illustration est décrite dans le texte périphérique.

Procédure

  1. Affichez les propriétés ME1 en cliquant sur Intégration des services -> Bus -> nom_bus -> [Topologie] Moteurs de messagerie -> nom_moteur.
  2. Sous l'onglet Exécution pour ME1, cliquez sur [Points de messages éloignés] Points de file d'attente éloignés, puis cliquez sur le point de file d'attente éloigné qui représente le point de file d'attente sur ME2. Examinez la valeur de la zone Messages sortants en cours.
  3. Si le nombre de messages sortants en cours est supérieur à zéro, des messages ont été produits mais il se peut qu'ils n'aient pas encore été reçus par ME2.
    1. Vérifiez que les deux moteurs de messagerie peuvent communiquer entre-eux. Voir Identification et résolution des problèmes d'intégration de services : vérification de la communication entre deux moteurs de messagerie sur un bus.
    2. Recherchez des messages antérieurs sur la file d'attente. S'il existe des messages antérieurs et que certains, ou tous, sont destinés à ME2, patientez un moment, puis actualisez la vue.
      • Si certains messages ont disparu de la file d'attente; ceci indique que le système distribue actuellement des messages mais accuse du retard. Patientez jusqu'à ce que le retard ait été comblé, puis inspectez le point de file d'attente sur ME2 pour déterminer si le message de test est arrivé.
      • Si aucun des messages n'a disparu de la file d'attente, il se peut que la transmission des messages soit bloquée par un message intercepté à l'état En cours de validation. Les messages ultérieurs doivent attendre la soumission de ce message, faute de quoi leur ordre ne sera pas respecté.

        Si un message à l'état En cours de validation est intercepté, ce message est contenu dans une transaction non résolue. Il se peut qu'un gestionnaire de ressources, tel qu'une base de données, se soit bloqué. Résolvez le problème affectant le gestionnaire de ressources. Si ceci échoue, notez l'ID de transaction du message et cliquez sur Serveurs -> Types de serveurs -> Serveurs d'applications WebSphere -> nom_serveur -> Exécution > [Propriétés supplémentaires] Service de transaction pour afficher les propriétés générales du service de transaction. Utilisez les liens Revue pour résoudre la transaction dont l'ID global correspond à l'ID de transaction du message.

    3. Examinez le statut du message de test :
      • Si le statut du message de test est "En attente d'envoi", le message est en attente d'envoi. Il se peut que ME2 n'accepte pas de messages. Effectuez les contrôles suivants :
        • Vérifiez que les deux moteurs de messagerie peuvent communiquer entre-eux. Voir Identification et résolution des problèmes d'intégration de services : vérification de la communication entre deux moteurs de messagerie sur un bus.
        • Vérifiez que le point de file d'attente sur ME2 n'est pas saturé : affichez les propriétés d'exécution du point de file d'attente et comparez la valeur de Profondeur des messages en cours à celle de Seuil de messages élevé. Si la profondeur des messages en cours est égale au seuil de messages élevé, le moteur de messagerie n'acceptera plus de nouveaux messages tant que les messages en file d'attente n'auront pas été consommés. Redémarrez le consommateur et attendez la disparition des messages en attente ou supprimez les messages.
          Remarque : Vous ne pourrez pas restaurer les messages après leur suppression.
        • Vérifiez que les modifications de la configuration ont été propagées. Vérifiez que ME2 est informé de l'existence du point de file d'attente en déployant les paramètres de configuration les plus récents sur le serveur d'applications de ME2.
      • Si le statut du message de test est "En attente d'accusé de réception", le message a été envoyé mais soit ME2 ne l'a pas reçu, soit il ne l'a pas traité. Vérifiez l'absence de messages à l'état En cours de validation en tête du message de test dans la file d'attente de transmission, puis patientez un moment et examinez à nouveau le point de file d'attente pour déterminer si le message de test est arrivé. Si des messages ont été interceptés à l'état En cours de validation, résolvez le problème en vous reportant au point suivant.
      • Si le message de test (ou un autre message) a le statut En cours de validation, le message est contenu dans une transaction non résolue. Il se peut qu'un gestionnaire de ressources, tel qu'une base de données, se soit bloqué. Résolvez le problème affectant le gestionnaire de ressources. Si ceci échoue, notez l'ID de transaction du message et cliquez sur Serveurs -> Types de serveurs -> Serveurs d'applications WebSphere -> nom_serveur -> Exécution > [Propriétés supplémentaires] Service de transaction pour afficher les propriétés générales du service de transaction. Utilisez les liens Revue pour résoudre la transaction dont l'ID global correspond à l'ID de transaction du message.
  4. Si le nombre de messages sortants terminés est supérieur à zéro, des messages sont parvenus et ont été traités sur ME2 mais le message de test n'est pas apparu. Exécutez à nouveau l'application productrice et vérifiez que le nombre de messages sortants terminés sur ME1 augmente (il se peut que le nombre de messages sortants actifs augmente avant celui des messages sortants terminés).
    • Si ce nombre n'augmente pas, le message n'a pas été produit sur ME1. Vérifiez si l'application émettrice est connectée à ce moteur de messagerie (voir Identification du moteur de messagerie auquel une application est connectée).
    • Si ce nombre augmente, le message est parvenu à ME2, mais a été consommé, envoyé à la destination d'exception ou a expiré. Vérifiez la présence de consommateurs et effectuez à nouveau les vérifications préliminaires.
  5. Si le nombre de messages en cours et terminés sont tous deux de zéro, vérifiez que l'application productrice génère des messages vers cette destination en effectuant à nouveau les tests préliminaires.

Que faire ensuite

Si vous rencontrez toujours des problèmes, contactez votre représentant du service client IBM.

Icône indiquant le type de rubrique Rubrique de tâche



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=tju_pt2pt_not_arriving_remote
Nom du fichier : tju_pt2pt_not_arriving_remote.html