Mit dem Resequence-Knoten steuern Sie die Reihenfolge, in der eine oder mehrere Gruppen eingehender Nachrichten innerhalb eines Nachrichtenflusses weitergeleitet werden.
Dieses Thema ist in folgende Abschnitte eingeteilt:
Der Resequence-Knoten steuert die Reihenfolge, in der eine oder mehrere Gruppen eingehender Nachrichten innerhalb eines Nachrichtenflusses durch den Knoten weitergeleitet werden.
Mit dem Resequence-Knoten können Sie Nachrichtengruppen anhand der in den Nachrichten enthaltenen Folgenummern sortieren. Jede Nachricht muss eine Folgenummer enthalten. Dies kann jede positive oder negative Ganzzahl sein. Die Folgenummer wird durch einen in der Eigenschaft Pfad zu Folgenummer auf dem Knoten definierten XPath-Ausdruck berechnet. Hierbei kann es sich um eine der Nachricht durch einen Sequence-Knoten hinzugefügte Folgenummer handeln.
Der Resequence-Knoten kann mehrere Folgegruppen unabhängig voneinander neu ordnen, er kann jedoch keine Nachrichten zwischen Folgegruppen austauschen. Welcher Gruppe eine Nachricht angehört, wird durch die Eigenschaften des Resequence-Knotens bestimmt.
Jede Folgegruppe kann nur einem Resequence-Knoten zugeordnet werden. Mehrere Resequence-Knoten können über eine Folgegruppe desselben Namens verfügen, doch jede dieser Folgegruppen wird als separate Gruppe behandelt. Die Unterscheidung der einzelnen Folgegruppen erfolgt mithilfe der Kombination aus Ausführungsgruppenname, Nachrichtenfolgename, Knotenname und Folgegruppenname.
Die Nachrichtenfolge mit der Bezeichnung flow1 enthält beispielsweise einen Resequence-Knoten mit der Bezeichnung node1, der wiederum in einer Ausführungsgruppe mit dem Namen eg1 implementiert ist. An diese wird mithilfe einer Folgegruppe mit der Bezeichnung group1 eine Nachricht gesandt. Das Ergebnis ist eg1/flow1/node1/group1. Genau dieselbe Nachrichtenfolge in einer anderen Ausführungsgruppe, z. B. eg2, hätte das Ergebnis eg2/flow1/node1/group1 zur Folge.
Sie können einen Resequence-Knoten so konfigurieren, dass mehrere Threads zur Weitergabe von Nachrichten verwendet werden. Dies ist jedoch nur möglich, wenn alle weitergegebenen Nachrichten unterschiedlichen Folgegruppen angehören. Bei Nachrichten derselben Folgegruppe kann immer nur ein Thread zur Weitergabe von Nachrichten verwendet werden. Dies hat zur Folge, dass die Reihenfolge der Nachrichten in einer Folgegruppe beibehalten wird, die Reihenfolge zwischen den Gruppen wird jedoch nicht aufrechterhalten.
Beim Resequence-Knoten tritt eine Transaktionsunterbrechung auf. Am Knoten ankommende Nachrichten werden nicht direkt an das Ausgabeterminal weitergegeben. Alle Nachrichten (einschließlich der nächsten Nachricht in der Folge) werden zuerst an eine interne WebSphere MQ-Warteschlange serialisiert. Die Speicherung der Nachricht erfolgt in der laufenden Transaktion. Nach der Speicherung ist die Transaktion abgeschlossen. Wenn eine gespeicherte Nachricht die nächste der Nachrichtenfolge ist, wird sie in einer neuen Transaktion über die Nachrichtenfolge weitergegeben. Ausschließlich der serialisierbare Teil der Daten wird vom Knoten aus weitergegeben; lokale Umgebung, Umgebung und Ausnahmelisten werden nicht übernommen.
Für Ausnahmebedingungen, die in dem Resequence-Knoten nachgeschalteten Knoten auftreten, wird ein Rollback zum Catch-Terminal des Resequence-Knotens durchgeführt. Wenn des Catch-Terminal nicht an andere Knoten angeschlossen ist, werden die Nachrichten erneut an das ursprüngliche Terminal (Ausgangsterminal, Terminal für fehlende oder abgelaufene Nachrichten) geliefert. Die Nachrichten werden nie zurückgesetzt oder gelöscht.
Weitere Informationen zu den verschiedenen Zuständen und Statusübergängen des Resequence-Knotens finden Sie unter Resequence-Knoten-Zustandsmaschine.
Der Resequence-Knoten befindet sich im Ablagefach Routing der Palette und wird im WebSphere Message Broker Toolkit durch folgendes Symbol dargestellt:
Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im WebSphere Message Broker Toolkit integrierte Information Center verwendet wird.
Nachdem Sie eine Instanz des Resequence-Knotens in einen Nachrichtenfluss eingereiht haben, können Sie den Knoten konfigurieren; siehe Nachrichtenflussknoten konfigurieren. Die Eigenschaften des Knotens werden in der Ansicht 'Eigenschaften' angezeigt.
Alle verbindlichen Eigenschaften, für die kein Standardwert definiert ist, sind mit einem Stern markiert.
Konfigurieren Sie den Resequence-Knoten:
Auch wenn der Ausdruck 'False' ergibt, werden weiterhin Nachrichten gesammelt. Das Ergebnis 'True' weist lediglich darauf hin, dass es sich um die erste Nachricht der Folge handelt.
Zurückgegebener Datentyp | True | False |
---|---|---|
Boolean | True | False |
Numerisch | Jeder Wert ungleich null | 0 oder 0.0 |
String | Jede Zeichenfolge, die True entspricht (ungeachtet der Groß-/Kleinschreibung) | Jede Zeichenfolge, die nicht True entspricht (ungeachtet der Groß-/Kleinschreibung) |
NodeSet (Knotensatz) | Nie | Immer |
Wenn der Ausdruck für eine Nachricht 'True' ergibt (die Nachricht also als erste Nachricht der Folge identifiziert wird), überprüft der Knoten, ob die Nachricht die kleinste Folgenummer der bisher gesammelten Nachrichten enthält. Falls Nachrichten mit niedrigeren Folgenummern vorhanden sind, wird eine Ausnahme ausgegeben.
Nach erfolgreicher Verarbeitung der ersten als 'true' (wahr) ausgewerteten Nachricht werden die XPath-Ausdrücke nachfolgender Nachrichten nicht mehr geprüft. Wenn eine Nachricht mit einer niedrigeren Folgenummer als der als erste Folgenummer ermittelten Nummer eintrifft, wird eine Ausnahme ausgegeben.
In der Regel wird der XPath-Ausdruck als boolescher Wert bewertet. Bei Rückgabe anderer Datentypen wird das Prädikat jedoch wie in der Tabelle 1 dargestellt bestimmt:
Wenn das Prädikat 'True' ergibt, wird die Folgenummer der Nachricht der Eigenschaft Ende der Folgedefinition zugeordnet.
Auch nachdem die Nachricht mit dem Prädikat 'Ende der Folgedefinition' eingetroffen ist, bleibt die Folgegruppe noch bis zum Ablauf der Eigenschaft Fehlendes Nachrichtenzeitlimit geöffnet, um fehlenden Nachrichten die Gelegenheit zu geben, einzutreffen. Alle Nachrichten, die innerhalb dieser Zeit, also noch vor dem Schließen der Folgegruppe, eintreffen, werden in die Gruppe eingeschlossen, es sei denn, es handelt sich um doppelte Nachrichten oder die Folgenummer der Nachricht liegt außerhalb des zugelassenen Bereichs. Nach dem Schließen der Folgegruppe werden alle neuen Nachrichten, die für diese Gruppe eintreffen, einer neuen Instanz der Gruppe zugeordnet.
Wenn eine Nachricht mit dem Prädikat 'Ende der Folgedefinition' gleich 'True' eintrifft, deren Folgenummer niedriger als die Folgenummer einer bereits eingetroffenen Nachricht ist, wird eine Ausnahme ausgegeben.
Nach der Überschreitung des Zeitlimits werden die Nachrichten der Reihe nach an das Terminal für abgelaufene Nachrichten weitergeleitet. Nachfolgende Nachrichten der Folgegruppe werden in diesem Fall ebenfalls an das Terminal für abgelaufene Nachrichten übergeben. Wenn die fehlende Nachricht schließlich doch eintrifft, wird sie an das Terminal für fehlende Nachrichten weitergeleitet.
Mehrere Threads können zur Weitergabe von Nachrichten von demselben Resequence-Knoten verwendet werden. Dies ist jedoch nur möglich, wenn alle weitergegebenen Nachrichten unterschiedlichen Folgegruppen angehören. Bei Nachrichten derselben Folgegruppe kann immer nur ein Thread zur Weitergabe von Nachrichten verwendet werden. Dies hat zur Folge, dass die Reihenfolge der Nachrichten in einer Folgegruppe beibehalten wird, die Reihenfolge zwischen den Gruppen wird jedoch nicht aufrechterhalten.
Weitere Informationen zur Festlegung zusätzlicher Instanzen finden Sie im Abschnitt Konfigurierbare Nachrichtenflusseigenschaften.
In der folgenden Tabelle werden die Terminals des Resequence-Knotens beschrieben.
Terminal | Beschreibung |
---|---|
Eingabeterminal (In) | Das Eingabeterminal, über das die eingehende Nachrichtenassemblierung beim Knoten eintrifft. |
Fehlerterminal (Failure) | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn ein Fehler auftritt.Dieser Wert schließt Fehler ein, die durch die Wiederholungsverarbeitung verursacht werden. |
Ausgang | Das Ausgabeterminal, an das die Ausgabenachricht standardmäßig geleitet wird. |
Expire | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn eine Zeitlimitüberschreitung eintritt, während der Knoten auf das Eintreffen der Nachricht wartet. Alle nachfolgenden Nachrichten der gleichen Gruppe werden in diesem Fall ebenfalls an dieses Terminal geleitet. |
Fehlend | Das Ausgabeterminal, an das eine fehlende Nachricht (die eine Zeitlimitüberschreitung verursacht hat) geleitet wird, wenn sie schließlich doch beim Knoten eintrifft. |
Catch-Terminal | Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn eine Ausnahmebedingung ausgegeben und von diesem Knoten abgefangen wird. Ausnahmen werden nur abgefangen, wenn dieses Terminal angeschlossen ist. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte O zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen, wenn ein Wert eingegeben werden muss, weil kein Standardwert definiert ist). Die Spalte K zeigt an, ob die Eigenschaft konfigurierbar ist (Wert kann geändert werden, wenn der Nachrichtenfluss für die Implementierung zur BAR-Datei hinzugefügt wird).
In der folgenden Tabelle werden die Beschreibungseigenschaften des Resequence-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Knotenname | Nein | Nein | Resequence | Der Name des Knotens. |
Kurzbeschreibung | Nein | Nein | Kurze Beschreibung des Knotens. | |
Langbeschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt |
In der folgenden Tabelle werden die Basiseigenschaften des Resequence-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Pfad zu Folgenummer | Ja | Nein | Ein XPath-Ausdruck, der die Folgenummer der Nachricht berechnet. | |
Pfad zu Folgegruppen-ID | Nein | Nein | Ein XPath-Ausdruck, der die Folgegruppen-ID berechnet. Nachrichten mit der gleichen Gruppen-ID werden als Teil der gleichen Folgegruppe betrachtet. Diese Eigenschaft funktioniert genauso wie die Eigenschaft Korrelationspfad des Collector-Knotens. | |
Beginn der Folgedefinition | Ja | Nein | Literal, 0 | Legt die erste Folgenummer jeder Gruppe fest. Gültige Werte sind:
|
Ende der Folgedefinition | Ja | Nein | Automatisch | Legt das Ende jeder Folgegruppe fest. Gültige Werte sind:
|
Fehlendes Nachrichtenzeitlimit (Sekunden) | Nein | Nein | Legt die Dauer (in Sekunden) fest, die der Knoten auf die nächste Nachricht der Folge wartet, bevor er mit der darauf folgenden Nachricht der Folge fortfährt. Diese Einstellung wird durch den Wert der Eigenschaft Fehlendes Nachrichtenzeitlimit des konfigurierbaren Resequence-Service überschrieben (sofern diese Einstellung festgelegt ist). |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Pool zusätzlicher Instanzen | Nein | Ja | Pool verwenden, der dem Nachrichtenfluss zugeordnet ist | Der Pool, aus dem zusätzliche Instanzen beschafft werden.
|
Zusätzliche Instanzen | Nein | Ja | 0 | Die Anzahl der zusätzlichen Instanzen, die der Knoten starten kann, wenn für die Eigenschaft Pool zusätzlicher Instanzen Pool verwenden, der dem Knoten zugeordnet ist angegeben wurde. |
In der folgenden Tabelle werden die erweiterten Eigenschaften des Resequence-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Permanenzmodus | Ja | Nein | Nicht persistent | Legt fest, ob unvollständige Nachrichtenfolgen persistent gespeichert werden. Folgende Optionen sind gültig:
|
Konfigurierbarer Service | Nein | Ja | Nicht festgelegt | Diese Eigenschaft gibt den Namen eines konfigurierbaren
Resequence-Services an, der vom
Resequence-Knoten verwendet werden soll. Die vom konfigurierbaren Resequence-Service festgelegten Eigenschaften überschreiben die funktional entsprechenden Eigenschaften, die im Resequence-Knoten festgelegt sind. Weitere Informationen zu den Eigenschaften, die Sie mit diesem konfigurierbaren Service einstellen können, finden Sie im Abschnitt Eigenschaften von konfigurierbaren Services. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Ereignisse | Nein | Nein | Ohne | Auf dieser Registerkarte werden Ereignisse angezeigt, die Sie für den Knoten
definiert haben. Standardmäßig sind für keinen Knoten in einem Nachrichtenfluss
Überwachungsereignisse definiert. Über Hinzufügen,
Bearbeiten und Löschen können Sie
Überwachungsereignisse für den Knoten erstellen, ändern oder löschen (Details siehe
Überwachungsereignisquellen mithilfe von Überwachungseigenschaften konfigurieren). Sie können hier angezeigte Ereignisse aktivieren oder inaktivieren, indem Sie das Kontrollkästchen Aktiviert aktivieren oder inaktivieren. |