Déterminer pourquoi les messages de publication/d'abonnement ne sont pas reçus par un abonnement via un point de message éloigné

Vous pouvez effectuer une série de vérifications pour déterminer pourquoi les messages de publication/abonnement ne sont pas reçus par un abonnement sur un bus d'intégration de services lorsque les messages sont acheminés via un point de messages éloigné.

Avant de commencer

Suivez la procédure de la rubrique Détermination des raisons pour lesquelles les messages de publication/abonnement ne parviennent pas à un abonnement, 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 Détermination des raisons pour lesquelles les messages de publication/abonnement ne parviennent pas à un abonnement. Cette tâche décrit comment examiner le flux de messages dans un scénario de messagerie de publication/abonnement où les messages sont acheminés via un point de messages éloigné à un abonnement éphémère. Le diagramme suivant illustre deux situations possibles. Les pointillés dans le diagramme indiquent des relations entre points de publication tandis que les lignes pleines indiquent un flux de messages. Dans la Figure 1, un bus contient trois moteurs de messagerie : ME1, ME2 et ME3. L'application de publication est connectée à ME1 et les publications abonnées sont connectées à ME2 et ME3. ME1 héberge des points de publication éloignés qui représentent ceux hébergés par ME2 et ME3. Dans la Figure 2, un bus contient trois moteurs de messagerie : ME1, ME2 et ME3. L'application de publication est connectée à ME1 et les publications abonnées sont connectées à ME2 et ME3. ME1 héberge des points de publication éloignés qui représentent ceux hébergés par ME2 et ME3. L'application abonnée B est connectée à ME3 et reçoit des publications de ME1 via un abonnement éloigné sur ME2. 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é Ce diagramme décrit la production de message point-à-point via un point de messages éloigné.
Figure 2. Messagerie de publication/abonnement à l'aide d'un point de messages éloigné Ce diagramme décrit la messagerie de publication/abonnement à l'aide d'un point de messages éloigné.
Les étapes suivantes s'appliquent aux deux scénarios.

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 publication éloignés, puis cliquez sur le point de publication éloigné qui représente le point de publication sur ME2. Cliquez sur Rubriques et vérifiez que la rubrique client est répertoriée. Si ce n'est pas le cas, effectuez les vérifications suivantes :
  3. Il est possible que l'enregistrement de l'abonnement soit intervenu après la publication du message. Publiez à nouveau le message et vérifiez à nouveau s'il a été reçu.
  4. Sur ME1, affichez à nouveau le point de publication éloigné qui représente le point de publication sur ME2. Examinez la valeur de la zone Messages sortants en cours.
  5. 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. Vérifiez s'il existe des messages antérieurs sur l'espace de sujet. 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 l'espace de sujet, 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 publication sur ME2 pour déterminer si le message de test est arrivé.
      • Si aucun des messages n'a disparu de l'espace de sujet, 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 publication sur ME2 n'est pas saturé : affichez les propriétés d'exécution du point de publication et comparez la valeur de Profondeur des messages en cours avec 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.
        • Vérifiez que les modifications de la configuration ont été propagées. Vérifiez que ME2 est informé de l'existence du point de publication 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 publication 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.
  6. 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.
  7. 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.
  8. Vous avez vérifié le flux de messages entre ME1 et ME2. Si vous avez une application dans la position de l'application abonnée A ou B dans la Figure 1, vous avez analysé la situation complètement ; si vous rencontrez toujours des problèmes, contactez votre représentant du service clientèle IBM. Si vous avez une application dans la position de l'application abonnée B dans la Figure 2 (en d'autres termes, une application avec abonnement éloigné), vous devez également examiner le flux de messages entre ME2 et ME3, en procédant comme suit. Pour déterminer si votre application utilise un abonnement éloigné, affichez les points de publication pour l'espace de sujet concerné, accédez à votre abonnement et examinez le nom du point de publication. Ce nom sera sous la forme nom_espace_sujet@nom_moteur_messagerie. Ce nom vous indiquera par quel moteur de messagerie est hébergé l'abonnement. Si ce moteur de messagerie est différent de celui auquel l'application productrice est connectée, tout comme de celui auquel l'application consommatrice est connectée, un abonnement éloigné est utilisé.
  9. Affichez les abonnements pour le point de publication sur ME2 et recherchez votre abonnement dans la liste. Si l'abonnement n'est pas répertorié, effectuez les vérifications suivantes :
  10. Vérifiez votre abonnement, puis cliquez sur Points d'abonnement distants connus. Dans la liste des résultats, cliquez sur le nom du moteur de messagerie représenté par ME3 dans le diagramme. Cliquez sur Demandes de messages. Ceci affiche les demandes reçues par l'abonnement sur ME2, depuis l'abonnement éloigné sur ME3.
  11. Si possible, démarrez l'application consommatrice et vérifiez qu'elle tente activement de consommer un message (l'état de l'application doit être "réception avec attente" ou "consommateur asynchrone enregistré" state), puis suivez les instructions de la rubrique Déterminer pourquoi les messages ne sont pas réceptionnés via un point de message ou d'abonnement éloigné lorsque l'application est en cours d'exécution. Si votre application ne parvient pas à rester à un état de consommation actif pendant un délai significatif (suffisant pour analyser le problème), suivez les instructions de la rubrique Détermination des raisons pour lesquelles des messages ne sont pas consommés via un point de message ou d'abonnement éloigné alors que l'application est arrêtée.

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_pubsub_nd_remote
Nom du fichier : tju_pubsub_nd_remote.html