Informationen zum Nachrichtenfluss 'XML_PassengerQuery'
Der Nachrichtenfluss 'XML_PassengerQuery' ruft die Reservierungsdaten des in der Eingabenachricht angegebenen Passagiers ab.
Die Daten, die in die Ausgabenachricht geschrieben werden, sind abhängig von den Daten in der Eingabenachricht:
- Enthält die Eingabenachricht nur eine Reservierungsnummer, erfolgt die Verarbeitung der Nachricht auf dem Pfad für einzelne Passagiere (Knoten 'SinglePassenger'). Die Ausgabenachricht enthält nur Daten im Zusammenhang mit dem Flug, welcher der angegebenen Reservierungsnummer zugeordnet ist.
- Enthält die Eingabenachricht nur einen Passagiernamen, erfolgt die Verarbeitung der Nachricht auf dem Pfad für alle Reservierungen (Knoten 'AllReservations'). Die Ausgabenachricht enthält Daten über alle Flüge, für die der Passagier über eine Reservierung verfügt.
Dabei wird vorausgesetzt, dass der Name des Passagiers eindeutig ist; dies ist zwar
unrealistisch, vereinfacht jedoch den Mustercode.
Der Nachrichtenfluss verwendet den RouteToLabel- und Kennsatzknoten, um eine
Nachricht auf Grundlage der in der Nachricht enthaltenen
Daten dynamisch weiterzuleiten. Dadurch kann auf verkettete Filterknoten verzichtet
werden, mit denen die Nachrichten über festgelegte Pfade auf Grundlage von Booleschen
Ergebnissen vom Typ True/False weitergeleitet würden.
Für die Ausführung des Nachrichtenflusses 'XML_PassengerQuery' sind zwei Eingabenachrichten verfügbar, mit denen der Abruf von beschriebenen unterschiedlichen Daten verdeutlicht wird.
Im folgenden Diagramm ist der Nachrichtenfluss 'XML_PassengerQuery' dargestellt.

In der nachfolgenden Tabelle werden die Knotentypen aufgelistet, die im Nachrichtenfluss 'XML_PassengerQuery' verwendet werden.
Knotentyp |
Knotenname |
MQInput |
XML_PASSENGERQUERY_IN |
Rechnen |
DecideOnQuery; GetPassengerInformation; GetReservationsInformation |
Knoten zur Weiterleitung an Zieladressen |
Knoten zur Weiterleitung an Zieladressen
|
Label |
SinglePassenger; AllReservations |
MQOutput |
XML_PASSENGERQUERY_FAIL_1; XML_PASSENGERQUERY_FAIL_2; XML_PASSENGERQUERY_OUT |
Weitere Informationen zu den Knoten in diesem Mustercode finden Sie
in der WebSphere Message Broker-Dokumentation unter
Integrierte Knoten.
Um den in diesem Nachrichtenfluss verwendeten ESQL-Code anzuzeigen, siehe Creating the XML_PassengerQuery message flow (Den Nachrichtenfluss 'XML_PassengerQuery' erstellen).
Der Nachrichtenfluss 'XML_PassengerQuery' führt die folgenden Aktionen durch:
- Der Knoten XML_PASSENGERQUERY_IN ruft die Eingabenachricht aus der Warteschlange XML_PASSENGERQUERY_IN ab und identifiziert die Eingabenachricht als in der XMLNSC-Domäne vorhanden. Der Nachrichtenfluss muss die Nachricht daher unter Verwendung des XMLNSC-Parsers
analysieren.
- Der Knoten XML_PASSENGERQUERY_IN gibt die Nachricht an den Knoten 'DecideOnQuery' weiter. Oder:
- Wenn es ein Problem bei der Identifikation der Eingabenachricht gibt, übergibt der Knoten die Nachricht über das Fehlerterminal an den Knoten XML_PASSENGERQUERY_FAIL1, der die Nachricht in die Warteschlange XML_PASSENGERQUERY_FAIL stellt.
- Wenn eine Ausnahmebedingung nachgeschaltet erzeugt wird und für die Nachricht eine ROLLBACK-Operation ausgeführt wird, gibt der Knoten XML_PASSENGERQUERY_IN die Nachricht über das Catch-Terminal an den Knoten XML_PASSENGERQUERY_FAIL2 weiter, der die Nachricht in die Warteschlange XML_PASSENGERQUERY_FAIL einreiht.
- Der Knoten 'DecideOnQuery' entscheidet, welchen Weg die Nachricht durch den
Nachrichtenfluss nimmt.
Der Weg, den die Nachricht nimmt, hängt vom Typ der in der Nachricht enthaltenen Informationen ab.
Der Knoten aktualisiert die lokale Umgebung mit den Zielinformationen:
- Wenn in der Nachricht nur eine Reservierungsnummer enthalten ist, fügt
der Knoten Einzelner Passagier in die lokale Umgebung ein,
sodass der RouteToLabel-Knoten die erste Eingabenachricht für 'XML_PassengerQuery'
(passengerquery1.mbtest) dem Knoten 'SinglePassenger' (Einzelner Passagier) übergibt.
- Wenn in der Nachricht der vollständige Name des Passagiers angegeben
ist, fügt der Knoten Alle Reservierungen in die lokale
Umgebung ein, sodass der RouteToLabel-Knoten die zweite
Eingabenachricht für 'XML_PassengerQuery' (passengerquery2.mbtest) dem Knoten
'AllReservations' (Alle Reservierungen) übergibt.
- Der Knoten 'DecideOnQuery' übergibt die Nachricht und die lokale Umgebung über das Ausgangsterminal an den RouteToLabel-Knoten.
- Der RouteToLabel-Knoten übergibt die Eingabenachricht an den entsprechenden Kennsatzknoten: an den Knoten 'SinglePassenger', wenn der Knoten 'DecideOnQuery' Einzelner Passagier in der lokalen Umgebung gespeichert hat, oder den Knoten 'AllReservations', wenn der Knoten 'DecideOnQuery' Alle Reservierungen in der lokalen Umgebung gespeichert hat.
- Wenn der RouteToLabel-Knoten die Eingabenachricht an den Knoten 'SinglePassenger' weitergeleitet hat, übergibt der Knoten 'SinglePassenger' die Eingabenachricht, die eine Reservierungsnummer enthält, über das Ausgangsterminal an den Knoten 'GetPassengerInformation'. Der Knoten 'GetPassengerInformation' überprüft die Reservierungsnummer in der Tabelle XMLPASSENGERTB der Datenbank RESERVDB und erstellt eine Ausgabenachricht aus den Informationen in der Tabelle XMLPASSENGERTB einschließlich der Reservierungsnummer, des vollständigen Namens des Passagiers, der Flugnummer, des Flugdatums und der Klasse. Der Knoten 'GetPassengerInformation' übergibt dann die Ausgabenachricht über das Ausgangsterminal an den Knoten XML_PASSENGERQUERY_OUT.
- Wenn der RouteToLabel-Knoten die Eingabenachricht an den
Knoten 'AllReservations' übergibt, leitet dieser die Eingabenachricht, in der der Name
des Passagiers enthalten ist, über das Ausgangsterminal an den
Knoten 'GetReservationsInformation' weiter. Der Knoten 'GetReservationsInformation' sucht in der Tabelle XMLPASSENGERTB der Datenbank RESERVDB nach dem Passagiernamen und erstellt eine Ausgabenachricht aus den Informationen in der Tabelle XMLPASSENGERTB einschließlich des vollständigen Passagiernamens, der Flugnummer, des Flugdatums und der Klasse für alle Reservierungen, die der Passagier vorgenommen hat. Der Knoten 'GetReservationsInformation' leitet die Ausgabenachricht über das Ausgangsterminal an XML_PASSENGERQUERY_OUT weiter.
- Der Knoten XML_PASSENGERQUERY_OUT reiht die Ausgabenachricht in die Warteschlange XML_PASSENGERQUERY_OUT ein.
Zurück zu den Informationen zum Mustercode 'Airline Reservations'