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 資料で XML_PassengerQuery メッセージ・フローのノードについて調べてください。このメッセージ・フローで使用される ESQL については、 XML_PassengerQuery メッセージ・フローの作成を参照してください。

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

  1. XML_PASSENGERQUERY_IN ノードは、入力メッセージを XML_PASSENGERQUERY_IN キューから取得し、その入力メッセージが XML ドメインにあることを確認します。 したがってメッセージ・フローでは、XML パーサーを使用してメッセージを解析する必要があります。
  2. XML_PASSENGERQUERY_IN ノードは、メッセージを DecideOnQuery ノードに渡します。 あるいは、
  3. DecideOnQuery ノードは、メッセージをメッセージ・フローに流す際のパスを決定します。 メッセージが通るパスは、そのメッセージに含まれている情報のタイプに従って決定されます。 このノードは、宛先情報に基づいて LocalEnvironment を次のように更新します。
  4. DecideOnQuery ノードは、Out ターミナルを通じて、メッセージと LocalEnvironment を RouteToLabel ノードに渡す。
  5. RouteToLabel ノードは、入力メッセージを関連 Label ノードに渡します。 このノードは、DecideOnQuery が LocalEnvironment に Single Passenger を登録した場合は SinglePassenger ノードで、DecideOnQuery ノードが LocalEnvironment に 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 サンプルについて』に戻る