Ich verwende MSMQ Version 4 und eine Transaktionswarteschlange haben. Ich verwende WCF, um die Warteschlange für eingehende Nachrichten anzuhören.Wie kann ich explizit Nachrichten als vergifteten in einer MSMQ-Transaktion mit WCF
Während der Verarbeitung besteht eine Abhängigkeit von Komponenten von Drittanbietern, die möglicherweise fehlschlagen oder für einen längeren Zeitraum nicht verfügbar sind. Um dies zu kompensieren, benutze ich die Funktionalität zur Behandlung von Giftnachrichten in MSMQ 4 (http://msdn.microsoft.com/en-us/library/aa395218.aspx), um die Anzahl der Wiederholungen von Nachrichten mit der Anzahl der Wartezeiten zu wiederholen.
In bestimmten Situationen weiß ich jedoch, dass die Eingangsnachricht ungültig/vergiftet ist. Wenn dies geschieht, würde das Werfen von Ausnahmen dazu führen, dass die Nachricht der Routine zur Verarbeitung von Giftnachrichten folgt, wie alle anderen Nachrichten mit allen Wiederholungen und Wartezeiten. Aber wenn ich weiß, dass die Nachricht vergiftet ist, sehe ich keinen Grund, es erneut zu versuchen und die konfigurierte Zeit zu warten, bis sie von der Giftwarteschlange bearbeitet wird.
Gibt es eine Möglichkeit, eine Nachricht explizit als vergiftet zu markieren, so dass sie nicht dem konfigurierten Wiederholungsfluss folgt und sofort in die Giftwarteschlange wechselt?
Ich habe genau das gleiche Problem., Ich nehme an, Sie haben keine Lösung gefunden? – Leon
@Leon In der Tat, noch keine Lösung gefunden. – Leo
Ich bin ein MSMQ-Neuling und ich habe das nicht versucht - Entschuldigung, wenn es albern ist. Dies war in dem Artikel, mit dem Sie verbunden sind: "Die Warteschlange ist eine Unterwarteschlange der Hauptwarteschlange, heißt" Gift "und wird automatisch von MSMQ generiert. Geben Sie den Hauptwarteschlangennamen gefolgt von einem" ; "und der Name der Unterwarteschlange, in diesem Fall -" poison ". Konnten Sie die Giftnachrichten nicht erkennen, sie aus der Hauptwarteschlange entfernen und sie manuell an die eingebaute Giftwarteschlange senden? –