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.

Nachrichten in einem Nachrichtenfluss umordnen

Wenn die Nachrichten, die in einen Nachrichtenfluss eintreten, eine Folgenummer und eine Gruppen-ID enthalten, können Sie mit dem Resequence-Knoten die Reihenfolge der Nachrichten wiederherstellen, bevor diese durch den Nachrichtenfluss weitergeleitet werden.

Bevor Sie beginnen:

Lesen Sie den Konzeptabschnitt über Nachrichtenfolgebildung.

Stellen Sie sicher, dass jede Nachricht eine sich inkrementell erhöhende Folgenummer enthält.

Die Folgenummer kann den Nachrichten durch den Sequence-Knoten hinzugefügt werden oder in den Nachrichten in Form eines zusätzlichen Integerfelds enthalten sein.

Wenn der Resequence-Knoten eine Eingabenachricht empfängt, wird die Nachricht nur dann weitergeleitet, wenn sie die nächste in der Reihenfolge ist. Wenn die Nachricht nicht die nächste der Reihenfolge ist, wird sie durch den Resequence-Knoten gespeichert, bis weitere Nachrichten eingehen, mithilfe derer der Knoten die Reihenfolge korrigieren kann. Erst dann gibt der Knoten die gespeicherte Nachricht weiter. Wenn eine Nachricht nicht eingeht und dadurch das Beenden der Folge durch den Resequence-Knoten verhindert, werden die verbleibenden Nachrichten in Übereinstimmung mit der Konfiguration des Resequence-Knotens verarbeitet. Weitere Informationen zu dieser Konfiguration finden Sie im Abschnitt Fehlende Nachrichten handhaben.

Beim Resequence-Knoten tritt eine Transaktionsunterbrechung auf. Wenn eine Nachricht an den Resequence-Knoten geliefert wird, geht die Kontrolle wieder auf den vorherige Knoten im Nachrichtenfluss über. Die Weitergabe aller vom Resequence-Knoten weitergegebenen Nachrichten erfolgt in einer neuen Transaktion, selbst wenn die Folge vollständig ist. Der Abschnitt Resequence-Knoten enthält weitere Informationen hierzu.

Die Reihenfolge der Nachrichten bleibt beim Neustart des Brokers erhalten. Wenn die Option Permanent auf der Registerkarte Erweitert des ResequenceKnotens ausgewählt ist, bleibt die Reihenfolge auch bei einem Neustart des Warteschlangenmanagers erhalten.

Im Folgenden wird beschrieben, wie ein Nachrichtenfluss erstellt wird, mit dem Sie die Reihenfolge der Nachrichten einer Folgegruppe wiederherstellen können:

  1. Wechseln Sie zur Ansicht 'Brokeranwendungsentwicklung'.
  2. Erstellen Sie einen Nachrichtenfluss mit einem MQInput-Knoten, einem Resequence-Knoten und einem MQOutput-Knoten.
  3. Verbinden Sie das Ausgangsterminal des Knotens MQInput mit dem Eingangsterminal des Knotens Resequence.
  4. Verbinden Sie das Ausgangsterminal des Knotens Resequence mit dem Eingangsterminal des Knotens MQOutput.
    Nachrichtenfluss mit den Knoten MQInput, Resequence und MQOutput.
  5. Geben Sie im MQInput-Knoten die Quelle der Eingabenachrichten des Knotens an. Setzen Sie dazu die Eigenschaft Warteschlangenname (auf der Registerkarte Grundeinstellung) auf den Namen einer WebSphere MQ-Warteschlange, aus der der MQInput-Knoten seine Nachrichten erhält. Beispiel: RESEQ.TASK1.IN1.
  6. Legen Sie die folgenden Eigenschaften des Knotens Resequence fest:
    1. Legen Sie auf der Registerkarte Grundeinstellungen die folgenden Eigenschaften fest:
      • Setzen Sie die Eigenschaft Pfad zu Folgenummer auf die Speicherposition der Folgenummer in der Nachricht. Beispiel: $InputBody/doc/seq. Die Folgenummer wird auch in der lokalen Umgebung über die Variable LocalEnvironment.Sequence.Number festgelegt.
      • Setzen Sie die Eigenschaft Pfad zu Folgegruppen-ID auf die Speicherposition der Folgegruppen-ID in der Nachricht. Beispiel: $InputBody/doc/grp. Die Folgegruppen-ID wird auch über die Variable LocalEnvironment.Sequence.Group in die lokale Umgebung kopiert.
      • Setzen Sie die Eigenschaft Beginn der Folgedefinition auf die erste Folgenummer der Gruppe. Beispiel: Literal mit dem Wert 0.
      • Legen Sie für die Eigenschaft Ende der Folgedefinition Automatisch und den erforderlichen Zeitlimitwert wie z. B. 60 fest. Bei dieser Einstellung wird die Folgegruppe automatisch geschlossen, wenn die Nachrichtenwarteschlange des Knotens 60 Sekunden lang leer bleibt. Die Nachricht für das Ende der Folge wird in der lokalen Umgebung durch die Variable LocalEnvironment.Sequence.End in Form eines booleschen Werts angegeben.
      • Setzen Sie die Eigenschaft Fehlendes Nachrichtenzeitlimit auf 10. Bei dieser Einstellung wartet der Resequence-Knoten 10 Sekunden lang auf die Nachricht mit der nächsten Folgenummer, bevor er, sollte die Nachricht nicht eintreffen, nachfolgende Nachrichten der Folgegruppe an das Terminal für abgelaufene Nachrichten weiterleitet. Wenn die nachfolgende Nachricht weitergeleitet wird, werden die Folgenummern aller fehlenden (abgelaufenen) Nachrichten als LocalEnvironment.Sequence.Missing-Variablen in die lokale Umgebung kopiert.
  7. Setzen Sie für den MQOutput-Knoten die Eigenschaft Warteschlangenname (auf der Registerkarte Grundeinstellung) auf den Namen einer WebSphere MQ-Warteschlange, an die der MQOutput-Knoten seine Nachrichten sendet. Beispiel: SEQ.TASK1.OUT1.
  8. Speichern Sie den Nachrichtenfluss.
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 | bc28042_