WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Nachrichtensortierungsszenario 1

Ändern Sie mithilfe einer in einer XML-Nachricht definierten Folgenummer die Sortierung der von WebSphere MQ empfangenen Nachrichten, so dass sie in der korrekten Reihenfolge weitergeleitet werden.

Bevor Sie beginnen:

Lesen Sie den Konzeptabschnitt über Nachrichtenfolgebildung.

In dieser Beispieltask ist die Folge durch den Beginn bei Folgenummer 0 (Standardeinstellung) und das Ende bei Folgenummer 8 definiert. Der Nachrichtenfluss ist so konfiguriert, dass Nachrichten zwar in einer anderen als der korrekten Reihenfolge eingehen, jedoch ausschließlich in dieser weitergegeben werden können, selbst wenn eine der Folgenummern niemals eingeht.

Im Folgenden wird beschrieben, wie ein Nachrichtenfluss erstellt wird, der das XML-Dokument von WebSphere MQ empfangen und die Nachrichten basierend auf einer Folgenummer in einer XML-Nachricht neu ordnen kann (in diesem Beispiel wird der Pfad $Root/XMLNSC/Doc/SeqNo verwendet) sowie in eine WebSphere-MQ-Warteschlange schreiben kann:

  1. Erstellen Sie einen Nachrichtenfluss mit dem Namen 'Resequence_Task1', der einen MQInput-Knoten, einen Resequence-Knoten und einen MQOutput-Knoten enthält. Weitere Informationen hierzu finden Sie im Abschnitt Nachrichtenflüsse erstellen.
  2. Verbinden Sie das Ausgangsterminal des Knotens MQInput mit dem Eingangsterminal des Knotens Resequence.
  3. Verbinden Sie das Ausgangsterminal des Knotens Resequence mit dem Eingangsterminal des Knotens MQOutput.
    Nachrichtenfluss mit den Knoten MQInput, Resequence und MQOutput.
  4. Legen Sie die folgenden Eigenschaften des Knotens MQInput fest:
    1. Setzen Sie auf der Registerkarte Grundeinstellung die Eigenschaft Warteschlangenname auf RESEQUENCE_TASK1_IN1
    2. Setzen Sie auf der Registerkarte Syntaxanalyse der Eingabenachricht die Eigenschaft Nachrichtendomäne auf XMLNSC.
  5. Legen Sie für den Resequence-Knoten folgende Eigenschaften auf der Registerkarte Grundeinstellung fest:
    1. Setzen Sie die Eigenschaft Pfad zu Folgenummer auf $Root/XMLNSC/Doc/SeqNo
    2. Setzen Sie die Eigenschaft Ende der Folgedefinition auf Literal und den Wert 8.
  6. Setzen Sie für den Knoten MQOutput die Eigenschaft Warteschlangenname (auf der Registerkarte Grundeinstellung) auf RESEQUENCE_TASK1_OUT1.
  7. Speichern Sie den Nachrichtenfluss.

Nachrichtenverarbeitung im Nachrichtenfluss:

In diesem Abschnitt wird beschrieben, wie der Resequence-Knoten die Nachrichten verarbeitet, die in den Nachrichtenfluss eingehen.

  1. Folgende Nachrichten gehen in der WebSphere MQ-Warteschlange RESEQUENCE_TASK1_IN1 ein:
    <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>,
  2. Der Resequence-Knoten empfängt zuerst die Nachricht mit der Folgenummer 0. Der Resequence-Knoten erstellt eine neue Folgegruppe zur Verwaltung des Neuordnungsprozesses. 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 Ausgangsterminal weitergegeben.
  3. Der Resequence-Knoten empfängt dann die übrigen Nachrichten bis einschließlich Folgenummer 8 und gibt diese in der Reihenfolge weiter, in der sie eingehen. Jede Nachricht wird vor der Weitergabe gespeichert. Zur Weitergabe der dem Resequence-Knoten nachgeordneten Nachrichten wird eine andere Transaktion verwendet.
  4. 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.
  5. 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>,
  6. Der Resequence-Knoten empfängt zuerst die Nachricht mit Folgenummer 8. An dieser Stelle erstellt der Resequence-Knoten eine neue (Standard-) Folgegruppe. Die Nachricht ist die letzte der Folge und wird daher nicht weitergegeben, sondern intern gespeichert.
  7. Der Resequence-Knoten empfängt dann die übrigen Nachrichten bis einschließlich Folgenummer 0. Alle Nachrichten werden gespeichert und nicht weitergegeben, bis die erste Nummer der Folge eingegangen ist (in diesem Fall Folgenummer 0).
  8. 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.
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:33


TaskthemaTaskthema | Version 8.0.0.5 | bc28024_