Nachrichtensortierungsszenario 1
Ändern Sie die Reihenfolge der von WebSphere® MQempfangenen Nachrichten so, dass sie mit einer in einer XML-Nachricht definierten Folgenummer in der richtigen Reihenfolge weitergegeben werden.
Vorbereitungen
Lesen Sie den Konzeptabschnitt über die Nachrichtenreihenfolge.
Informationen zu dieser Task
In dieser Beispieltask ist die Sequenz so definiert, dass sie bei Folgenummer 0 (Standardwert) beginnt und bei Folgenummer 8 endet. Der Nachrichtenfluss ist so konfiguriert, dass Nachrichten in der falschen Reihenfolge eingehen, aber nicht in der falschen Reihenfolge weitergegeben werden können, selbst wenn eine der Folgenummern nie eintrifft.
Die folgenden Schritte zeigen, wie man einen Nachrichtenfluss erstellt, der das XML-Dokument von WebSphere MQ empfängt, die Nachrichten anhand einer Sequenznummer in einer XML-Nachricht neu ordnet (in diesem Beispiel wird $Root/XMLNSC/Doc/SeqNo der Pfad verwendet) und sie in eine Warteschlange unter IBM MQ schreibt:
Vorgehensweise
Ergebnisse
Nachrichtenverarbeitung im Nachrichtenfluss:
In diesem Abschnitt wird beschrieben, wie der Resequence -Knoten die Nachrichten verarbeitet, die in den Nachrichtenfluss eingehen.
- Die folgenden Nachrichten kommen in der WebSphere MQ RESEQUENCE_TASK1_IN1:
<Doc><SeqNo>0</SeqNo></Doc>,<Doc><SeqNo>1</SeqNo></Doc>,<Doc><SeqNo>2</SeqNo></Doc>, <Doc><SeqNo>3</SeqNo></Doc>,<Doc><SeqNo>4</SeqNo></Doc>,<Doc><SeqNo>5</SeqNo></Doc>, <Doc><SeqNo>6</SeqNo></Doc>,<Doc><SeqNo>7</SeqNo></Doc>,<Doc><SeqNo>8</SeqNo></Doc>, - Der Resequence -Knoten empfängt zuerst die Nachricht mit der Folgenummer 0. Der Knoten Umordnen erstellt eine neue Folgegruppe zur Verwaltung des Umordnungsprozesses. Die neue Folgegruppe ist eine Standardgruppe, da keine Folgegruppe in der Nachricht definiert wurde. Die Nachricht (mit Folgenummer 0) ist die erste Nachricht der Folge und wird daher an das Out-Terminal weitergegeben.
- Der Resequence -Knoten empfängt dann die restlichen Nachrichten bis einschließlich Folgenummer 8 und gibt sie in der Reihenfolge weiter, in der sie eingegangen sind. Jede Nachricht wird vor ihrer Weitergabe gespeichert und es wird eine andere Transaktion für die Weitergabe der Nachrichten verwendet, die dem Resequence -Knoten nachgeordnet sind.
- Nach der Verarbeitung der Nachricht mit Folgenummer 8 wird die Folgegruppe geschlossen. Für alle neuen Nachrichten derselben Gruppe, die danach eingehen, wird eine neue Gruppe erstellt.
- Die nächsten Nachrichten gehen in der Warteschlange RESEQUENCE_TASK1_IN1 ein:
<Doc><SeqNo>8</SeqNo></Doc>,<Doc><SeqNo>7</SeqNo></Doc>,<Doc><SeqNo>6</SeqNo></Doc>, <Doc><SeqNo>5</SeqNo></Doc>,<Doc><SeqNo>4</SeqNo></Doc>,<Doc><SeqNo>3</SeqNo></Doc>, <Doc><SeqNo>2</SeqNo></Doc>,<Doc><SeqNo>1</SeqNo></Doc>,<Doc><SeqNo>0</SeqNo></Doc>, - Der Resequence -Knoten empfängt zuerst die Nachricht mit der Folgenummer 8. An diesem Punkt erstellt der Knoten Umordnen eine neue (Standard-) Folgegruppe. Die Nachricht ist die letzte der Folge und wird daher nicht weitergegeben, sondern intern gespeichert.
- Der Resequence -Knoten empfängt dann die restlichen Nachrichten bis einschließlich Folgenummer 0. Alle Nachrichten werden gespeichert und keine weitergegeben, bis die erste Nummer in der Folge empfangen wird (in diesem Fall Folgenummer 0).
- Wenn die Nachricht mit Folgenummer 0 eingeht, wird sie über den Nachrichtenfluss weitergegeben, der Reihe nach gefolgt von den anderen Nachrichten, bis die letzte Nachricht (Folgenummer 8) weitergegeben wurde. Dann wird die Folgegruppe wieder geschlossen.
