WCF sur la liaison MSMQ. Comment détecter quand un message est déplacé dans la file d'attente poison?

StackOverflow https://stackoverflow.com/questions/5431331

  •  12-11-2019
  •  | 
  •  

Question

J'exécute un client WCF qui invoque un service WCF via un MSMQBinding. Framework est .NET 4.0, le client et le serveur s'exécutent sur Windows Server 2008 R2. La file d'attente du canal est transactionnelle.

Le service est hébergé avec ces paramètres de liaison: receiveErrorHandling="Move" receiveRetryCount="3" retryCycleDelay="00:00:20" maxRetryCycles="5"

Étant donné que ((ReceiveRetryCount + 1) * (MaxRetryCycles + 1)) est en vigueur, cela entraînera 4 * 6 = 24 RETRES DE TOUT MESSAGE AVANT DE CE QU'IL AVEC LE SUB-QUATION POISON.

Attachant un ierrorhandler à mon service Je remarque que HandleError est appelé avec un MSMQPOISONMESSAGEException un total de 6 fois (pour un message poison), avant que le sous-système WCF ne déplace enfin le message vers le sous-celui de Poison.

Je veux enregistrer l'heure précise lorsqu'un message est réalisé et le message est déplacé dans la file d'attente de poison. Il me semble que la seule option consiste à compter le nombre de fois par certains défauts de message et à comparer ce nombre avec les maxretrycycles de liaison. C'est maladroit et errorprone.

Ma question est:

  • Y a-t-il un moyen pour moi de détecter de manière concluante l'événement où le sous-système WCF déplace le message vers la file d'attente Poison?

Mes références sont:http://msdn.microsoft.com/en-us/library/aa395218.aspx

Et: http://consultingblogs.emc.com/simonevans/archive/2007/09/17/a-comprehensive-guide-to-using-msmqinegrationbinding-with-msmq-3.0-in-wcf.aspx

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top