XML_PassengerQuery メッセージ・フローについて

XML_PassengerQuery メッセージ・フローは、入力メッセージ内に指定されている乗客の予約詳細情報を検索します。 出力メッセージ内の情報のタイプは、入力メッセージ内に提供されている情報によって異なります。

メッセージ・フローは RouteToLabel ノードと Label ノードを使用して、メッセージ自体にある情報に基づいて動的にメッセージを経路指定します。(特定のパスにメッセージを経路指定するために真/偽のブール結果を必要とする) 一連の Filter ノードを作成する必要はありません。

説明されている両方のタイプの情報の検索を例示するために、XML_PassengerQuery メッセージ・フローを実行するための 2 つの入力メッセージが提供されています。

下の図は、XML_PassengerQuery メッセージ・フローを示しています。

XML_PassengerQuery メッセージ・フローの画面取り

下の表では、XML_PassengerQuery メッセージ・フローで使用されるノードのタイプをリストしています。

ノード・タイプ ノード名
MQInput XML_PASSENGERQUERY_IN
Compute DecideOnQuery; GetPassengerInformation; GetReservationsInformation
RouteToLabel

RouteToLabel

Label SinglePassenger; AllReservations
MQOutput XML_PASSENGERQUERY_FAIL_1; XML_PASSENGERQUERY_FAIL_2; XML_PASSENGERQUERY_OUT

このサンプルで使用されるノードについて詳しくは、WebSphere Message Broker の資料で、ビルトイン・ノードを参照してください。このメッセージ・フローで使用される ESQL については、 XML_PassengerQuery メッセージ・フローの作成を参照してください。

XML_PassengerQuery メッセージ・フローは以下のアクションを実行します。

  1. XML_PASSENGERQUERY_IN ノードは、入力メッセージを XML_PASSENGERQUERY_IN キューから取得し、その入力メッセージが XMLNSC ドメインにあることを確認します。 したがってメッセージ・フローでは、XMLNSC パーサーを使用してメッセージを解析する必要があります。
  2. XML_PASSENGERQUERY_IN ノードは、メッセージを DecideOnQuery ノードに渡します。 あるいは、
  3. DecideOnQuery ノードは、メッセージをメッセージ・フローに流す際のパスを決定します。 メッセージが通るパスは、そのメッセージに含まれている情報のタイプに従って決定されます。 このノードは、宛先情報に基づいてローカル環境を次のように更新します。
  4. DecideOnQuery ノードは、Out ターミナルを通じて、メッセージとローカル環境を RouteToLabel ノードに渡す。
  5. RouteToLabel ノードは、入力メッセージを関連 Label ノードに渡します。 このノードは、DecideOnQuery がローカル環境に Single Passenger を登録した場合は SinglePassenger ノードで、DecideOnQuery ノードがローカル環境に All Reservations を 登録した場合は AllReservations ノードです。
  6. RouteToLabel ノードが入力メッセージを SinglePassenger ノードに渡した場合、SinglePassenger ノードは予約番号を含むその入力メッセージを、Out ターミナルを通じて GetPassengerInformation ノードに渡します。 GetPassengerInformation ノードは、RESERVDB データベースの XMLPASSENGERTB 表で予約番号を検索し、XMLPASSENGERTB 表で見つかった、予約番号、乗客の氏名、フライト番号、 フライトの日付、および座席クラスといった情報から、出力メッセージを作成します。 次いで GetPassengerInformation ノードは、Out ターミナルを介して出力メッセージを XML_PASSENGERQUERY_OUT ノードに渡します。
  7. RouteToLabel ノードが入力メッセージを AllReservations ノードに渡した場合、AllReservations ノードは乗客の名前を含むその入力メッセージを、Out ターミナルを通じて GetReservationsInformation ノードに渡します。 GetReservationsInformation ノードは、RESERVDB データベースの XMLPASSENGERTB 表で乗客名を検索し、XMLPASSENGERTB 表で見つかった、乗客が行った各予約について、乗客の氏名、フライト番号、 フライトの日付、および座席クラスといった情報を含む出力メッセージを作成します。 次いで GetReservationsInformation ノードは、Out ターミナルを介して出力メッセージを XML_PASSENGERQUERY_OUT ノードに渡します。
  8. XML_PASSENGERQUERY_OUT ノードは出力メッセージを XML_PASSENGERQUERY_OUT キューに入れます。

「Airline Reservations サンプルについて」に戻る