Ein Nachrichtenflussknoten ist ein Verarbeitungsschritt in einem Nachrichtenfluss.
Ein Nachrichtenflussknoten empfängt eine Nachricht, führt eine Reihe von Aktionen für die Nachricht aus und gibt die Nachricht optional an den nächsten Knoten im Nachrichtenfluss weiter. Bei einem Nachrichtenflussknoten kann es sich im einen integrierten Knoten , einen benutzerdefinierten Knoten oder einen untergeordneten Nachrichtenflussknoten handeln.
Ein Nachrichtenflussknoten verfügt über eine festgelegte Anzahl von Ein- und Ausgabepunkten, die Terminals genannt werden. Sie können zwischen den Terminals Verbindungen herstellen, um die Routen zu definieren, die eine Nachricht im Nachrichtenfluss nehmen kann.
Weitere Informationen zu allen von WebSphere Message Broker bereitgestellten integrierten Knoten finden Sie unter Integrierte Knoten.
Eine Nachricht wird von einem Input-Knoten empfangen und gemäß der Definition des untergeordneten Flusses verarbeitet. Dies kann beinhalten, dass sie über einen Warehouse-Knoten gespeichert oder an ein anderes Nachrichtenziel zugestellt wird (beispielsweise über einen MQOutput-Knoten). Falls erforderlich, kann die Nachricht durch einen Output-Knoten zu weiteren Verarbeitung zurück an den Hauptfluss übergeben werden.
Der untergeordnete Fluss, der in einen Hauptfluss eingebettet ist, wird von einem Knoten des untergeordneten Flusses dargestellt. Diesem ist ein eindeutiges Symbol zugeordnet. Das Symbol wird mit der richtigen Anzahl an Terminal angezeigt, um die Input- und Output-Knoten darzustellen, die Sie in die Definition des untergeordneten Flusses aufgenommen haben.
Die gängigste Verwendung eines untergeordneten Flusses besteht in der Bereitstellung der Verarbeitung, die an vielen Orten im Nachrichtenfluss erforderlich ist. Darüberhinaus kann er von mehreren Nachrichtenflüssen gemeinsam genutzt werden. Sie können beispielsweise eine gewisse Fehlerverarbeitung in einem untergeordneten Fluss codieren oder einen untergeordneten Fluss zur Bereitstellung eines Prüfprotokolls erstellen (dabei wird die gesamte Nachricht gespeichert und ein Trace-Eintrag geschrieben).
Ein Knoten generiert nicht immer eine Ausgabenachricht für jedes Ausgabeterminal: Häufig generiert er eine Ausgabe für ein einzelnes Terminal auf Basis der empfangenen Nachricht oder des Ergebnisses der Knotenoperation. Ein Filter-Knoten sendet beispielsweise für gewöhnlich eine Nachricht am TRUE-Terminal oder am FALSE-Terminal, jedoch nie an beiden Terminals.
Sind mehrere Terminals verbunden, sendet der Knoten die Ausgabenachricht an jedem Terminal. Die Nachricht wird jedoch erst am nächsten Terminal gesendet, wenn die Verarbeitung für das aktuelle Terminal vollständig abgeschlossen ist. Aktualisierungen an einer Nachricht werden niemals an Knoten weitergegeben, die zuvor ausgeführt wurden, nur an Knoten, die dem Knoten folgen, in dem die Aktualisierung vorgenommen wurde. Die Reihenfolge, in der die Nachricht an die verschiedenen Ausgabeterminals weitergegeben wird, wird vom Broker festgelegt; sie kann nicht geändert werden. Die einzige Ausnahme dieser Regel bildet der FlowOrder-Knoten, in dem die Terminals die Reihenfolge angeben, in der die Nachricht an die einzelnen Terminals weitergegeben wird.
Der Nachrichtenfluss kann eine neue Nachricht zur Verarbeitung erst annehmen, wenn alle Pfade durch den Nachrichtenfluss (d. h. alle verbundenen Knoten aller Ausgabeterminals) vollständig abgeschlossen wurden.