Das Verhalten des untergeordneten Routing-Nachrichtenflusses wird durch den Wert des Musterparameters Routing bestimmt.
Wenn Kein Routing ausgewählt ist, wird ein einziger MQOutput-Knoten erstellt und mit den Werten der Musterparameter Ausgabe-WS-Manager und Ausgabewarteschlange konfiguriert. Der Routing-Nachrichtenfluss ist ein untergeordneter Nachrichtenfluss, der einen Pass-through-Knoten enthält. Der Failure-Knoten wurde lediglich aus Konsistenzgründen mit anderen Typen des untergeordneten Routing-Nachrichtenflusses hinzugefügt.
Eine Gruppe von vier Parametern, die eine Route definieren:
Für jede Route, die definiert ist, wird ein Ausgabeterminal für den untergeordneten Routing-Nachrichtenfluss und ein MQOutput-Knoten erstellt und verbunden.
Der untergeordnete Routing-Nachrichtenfluss enthält einen Route-Knoten, der mit einem Filter konfiguriert ist, der die Weiterleitung an das Ausgabeterminal ausführt, wenn die Bedingung KeyLocation = Key Value erfüllt ist. Wenn ein Nachrichtenelement mit keiner dieser Routen übereinstimmt, wird dieser Fehler in einer Umgebungsvariablen aufgezeichnet und die Nachricht an das Failure-Terminal weitergeleitet.
Mit Routen angeben können verschiedene Routen angegeben werden.
Wenn dieser Wert ausgewählt ist, wird für den untergeordneten Routing-Nachrichtenfluss ein einziges Ausgabeterminal erstellt, das mit einem einzigen MQOutput-Knoten verbunden wird, der für eine Zielliste konfiguriert ist.
Der untergeordnete Routing-Nachrichtenfluss überprüft, ob der Cache aktualisiert werden muss. Dies ist der Fall, wenn der Wert der gemeinsamen Zeilenvariablen CacheQueueTable.valid auf NULL gesetzt ist. Die Variable ist beim Start des Nachrichtenflusses auf NULL gesetzt, aber auch wenn Cache-Aktualisierung aktiviert ist und eine Aktualisierungsnachricht an die Aktualisierungswarteschlange gesendet wurde. Aktualisierungsnachrichten setzen den Wert auf NULL.
Wenn der Cache aktualisiert werden muss, wird die Tabelle ROUTING_TABLE der Datenquelle (angegeben im Musterparameter Routing-Datenquelle) nach allen Zeilen durchsucht, die dem Routing-Kontext dieses Nachrichtenflusses entsprechen. Der Routing-Kontext wird durch den Musterparameter Routing-Kontext definiert. Zeilen, deren ROUTING_CONTEXT-Feld mit diesem Parameter übereinstimmt, werden automatisch in einen Speichercache gelesen, um Suchen während eines inkonsistenten Cache-Status zu verhindern.
Die zwischengespeicherten Daten haben folgende Struktur:
VARIABLE1, VARIABLE2, QUEUE_MANAGER, QUEUE_NAME
Die Suche wird ausgeführt, indem mithilfe von ESQL-Ausdrücken, die als Musterparameter definiert sind, ein oder zwei Schlüsselwerte aus dem Nachrichtenelement extrahiert werden. Definieren Sie Musterparameter mithilfe einer Anweisung im folgenden Format:
SET KEY = <Musterparameter>
Wenn nur ein Schlüssel angegeben ist, verwenden Sie zur Auswahl einer oder mehrerer Zeilen aus den Routing-Daten folgende WHERE-Klausel:
WHERE S.VARIABLE1 = KEY1
Wenn ein zweiter Schlüssel angegeben ist, verwenden Sie zur Auswahl folgende WHERE-Klausel:
WHERE S.VARIABLE1 = KEY1 and S.VARIABLE2 = KEY2
Durch diese Auswahl werden der WS-Manager und die Warteschlange in der lokalen Umgebung festgelegt, die im MQOutput-Knoten verwendet wird. Es können auch mehrere Zeilen zurückgegeben werden. Die Zieldaten beinhalten dann alle ausgewählten Ziele. Wenn keine Übereinstimmung gefunden wird, wird ein Routing-Fehler zurückgegeben und die Nachricht wird an das Failure-Terminal des untergeordneten Routing-Nachrichtenflusses weitergeleitet.