2015-10-12 1 views
-1

App1 - envoie un message à q1 App2 - envoie un message à q2message de demande de réponse mappage dans l'application .NET pour les messages IBM MQ

App1 mettra message à q1 et App1 va obtenir un message de q2

q1 et q2 appartient au même gestionnaire de file d'attente et ils sont les files d'attente locales

je voulais savoir comment puis-je assurer que, je reçois une réponse de même demande bien vouloir me faire savoir comment et où dois-je entretenir Id est pour la demande et réponse.

veuillez fournir un extrait de code ou des liens auxquels je peux faire référence.

Actuellement ce que je fais est de générer l'Id du message de demande et de le mettre dans le champ d'identification de corrélation tout en envoyant le message; Après avoir reçu la réponse, je génère de nouveau l'Id en utilisant la même formule (que j'ai utilisée pour l'ID du message de requête) et en comparant les deux ID corrélés s'ils correspondent alors la Réponse est pour la même Demande.

Je dois immédiatement afficher la réponse à l'utilisateur, donc s'il y a plusieurs utilisateurs actuellement connectés à la demande d'application, alors comment s'assurer que les réponses correspondront à la demande. (Comme après avoir lu un message de file d'attente de la file d'attente supprimera le message et même si je stocker dans la base de données comment fournir une réponse immédiate
à l'utilisateur)

s'il vous plaît faire fournir des connaissances sur ce

+0

Salut, je vois que vous êtes relativement nouveau à poser des questions ici. Vous voudrez peut-être lire [Comment poser une bonne question?] (Http://stackoverflow.com/help/how-to-ask) pour éviter les sous-cotations – Basic

Répondre

0

Regardez ce response. Si vous utilisez XMS .NET, les deux exemples suivants livrés avec le produit sous le répertoire < "mqinstall"> \ Tools \ dotnet \ samples \ cs \ xms \ simple \ wmq illustrent le modèle de messagerie de demande/réponse.

SimpleRequestor.cs - Requester

SimpleRequestorServer.cs - Responder

0

pratique standard est de se rappeler le message Id de la demande et chercher dans la corrélation Id de la réponse, puis à demandez à l'application qui répond de copier le message Id du message de demande dans l'ID de corrélation de la réponse. Consultez MQRO_COPY_MSG_ID_TO_CORREL_ID dans le Centre de connaissances (ou ailleurs sur le Web que Google peut vous indiquer).

Votre description ne précise pas si vous utilisez l'ID de message ou l'ID de corrélation pour le message de demande. Vous pouvez bien sûr choisir d'utiliser l'ID de corrélation pour les deux et utiliser MQRO_PASS_CORREL_ID à la place. Vous avez juste besoin de vous assurer que votre application répondante fait ce qu'elle est censée faire par l'option de rapport.

Si vous transmettez l'ID de requête d'origine dans la réponse, vous pouvez comparer les deux et savoir qu'il s'agit d'une réponse à un message de requête particulier. Cela a bien sûr requis que chaque message de requête ait un identifiant de message unique - quelque chose qu'IBM MQ sera heureux de générer pour vous si vous le souhaitez.