2 votes

WCF liaison netmsmq. Réessayer côté client si MSMQ n'est pas disponible

Je sais qu'une fois qu'un message a été livré au MSMQ par un client WCF, le netmsmqbinding fournit des tentatives de réessai par défaut en cas de défaillance du service.

Mais si mon client échoue à mettre le message dans le MSMQ en premier lieu, existe-t-il une fonction de réessai client disponible par défaut dans WCF ou dois-je implémenter une file d'attente client et une logique de réessai dans mon code client?

Merci

2voto

Mohammad Sepahvand Points 5377

C'est un scénario très improbable que vos messages envoyés au service ne soient même pas placés dans la file d'attente client en premier lieu, si vous avez un serveur MSMQ en cours d'exécution sur la station cliente et que le service d'écoute MSMQ est opérationnel, vous ne devriez pas vous inquiéter. Je ne pense pas que MSMQ offre quoi que ce soit pour vérifier cela pour vous, vous devriez coder une méthode sur votre client pour périodiquement Peek() la file d'attente locale et envoyer un accusé de réception pour chaque message qui a atteint la file d'attente, c'est faisable car vous pouvez facilement accéder à vos files d'attente locales dans le code et aussi chaque message envoyé via MSMQ d'un client vers un service passera toujours par la file d'attente locale. Vous pouvez également dire que le message atteint la file d'attente si votre méthode Send() ne retourne pas une erreur. Mais je ne pense pas que vous ayez vraiment besoin de vous inquiéter que les messages sur le client n'atteignent pas d'abord la file d'attente locale.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X