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é.
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é
Procédure
- Affichez les propriétés ME1 en cliquant sur .
- 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.
- 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.
- 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.
- 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 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.
- 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 :
- 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 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.
- 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.
- 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.