2009-05-18 11 views
16

Was ist der Unterschied zwischen einer Warteschlange für nicht zustellbare Nachrichten und einer Warteschlange für ausgehende Nachrichten?Was ist der Unterschied zwischen einer Warteschlange für unzustellbare Nachrichten und einer Warteschlange für ausgehende Nachrichten?

In WebSphere MQ-Bedingungen und in Bezug auf Anwendungsserver.

Alle J2EE/JEE-App-Server haben einen MQ-Provider, haben sie auch ein Konstrukt einer Warteschlange für unzustellbare Nachrichten oder ist das etwas, das für WebSphere MQ spezifisch ist?

Mein Verständnis von einer Warteschlange zurück ist wie folgt aufgeteilt:

Wenn MQ ist nicht in der Lage, die Nachricht zu einem Ziel nach einer bestimmten Anzahl von Versuchen, es wird die Meldung in die Rückseite aus Warteschlange zu liefern.

Ich habe kein klares Verständnis einer Dead Letter-Warteschlange.

Schätzen Sie jede Hilfe.

Antwort

10

Die Warteschlange für nicht zustellbare Nachrichten wurde immer in MQSeries (das letzte Mal, als ich MQ verwendete) verwendet, um Nachrichten zu speichern, die am Warteschlangenmanager eingingen, aber die Warteschlange nicht vorhanden war.

Wenn beispielsweise die Nachrichtenadresse ist Manager X und Y-Warteschlange Warteschlange würde es über einen Kanal an Managern ankommt X.

Wenn der Empfängerkanal festgestellt hat, dass keine Warteschlange Y vorhanden ist, wird er in die Warteschlange für nicht zustellbare Nachrichten gestellt.

Die Backout-Warteschlange hingegen ist eher eine Anwendungsebene (zumindest in Bezug auf MQ). Wenn ein MQ-Client die Nachricht aus irgendeinem Grund nicht verarbeiten kann, kann er sie zur späteren Verarbeitung (zurück in die ursprüngliche Warteschlange) zurücksetzen.

Wenn es zu oft zurückgesetzt wird (der Schwellenwert kann konfiguriert werden), wird es in die Backout-Warteschlange verschoben.

+0

Hier weitere Informationen: http://www.ibm.com/developerworks/websphere/library/techarticles/0803_titheridge/0803_titheridge.html –

+0

@paxdiablo wird diese backout Warteschlange vom Manager MQ verwaltet oder hat der Client die Verbindung zu dieser Warteschlange? – bluelurker

+0

Obwohl die Back-Out-Warteschlange vom Warteschlangenmanager verwaltet wird, werden die Nachrichten an eine Back-Out-Warteschlange von MQs JMS- und XMS-Client weitergeleitet. – Shashi

1

Die Dead Letter Queue verhält sich genauso wie ein Backout. Ich behandle die Warteschlange für unzustellbare Nachrichten als das Krematorium für Nachrichten, die nicht in den Warteschlangen "Error" oder "Backout" wiederhergestellt werden können, und sie enthält einige letzte, nicht geschäftsspezifische Daten, die gesammelt werden müssen. Sobald die Informationen erfasst sind, wird die Nachricht für immer gespeichert. Ein Backout eignet sich gut zum Analysieren von Nachrichten für Daten, die möglicherweise wiederhergestellt werden müssen, um sie vollständig erneut verarbeiten zu können, oder um sie an einen Anwendungsbereich zurückzusenden, damit sie eine Entscheidung treffen können.

4

Danke für die Antworten. Ich fand auch heraus, dass, wenn die Anwendung die Nachricht aus irgendeinem Grund nicht in die Back-Out-Warteschlange (BOQ) verschieben kann, ein Versuch unternommen wird, die Warteschlange in die Dead Letter Queue (DLQ) zu verschieben.

In unserer Anwendung ist es passiert. Es gab einige Berechtigungsprobleme in der Zurück-Warteschlange, sodass die Nachricht nicht in die BOQ geschrieben werden konnte und in der Warteschlange für unzustellbare Nachrichten endete.

0

Eine Dead-Letter-Warteschlange ist auch eine lokale Warteschlange. Wenn wir versuchen, eine Nachricht von einer Warteschlange in eine andere Warteschlange zu stellen und die Nachricht nicht an das richtige Ziel gesendet wurde, wird die Nachricht zu diesem Zeitpunkt in eine Warteschlange für nicht zustellbare Nachrichten verschoben.

Verwandte Themen