XML_FlightQueryIn メッセージ・フロー について
XML_FlightQueryIn は、集計サンプル XML_FlightQuery 内の「ファンイン」メッセージ・フローです。XML_FlightQuery は、WebSphere MQ キューでメッセージを書き込み/読み取りすることによって通信する 3 つの短いメッセージ・フローで構成されています。
XML_FlightQuery 内の 3 つのメッセージ・フローは、以下のとおりです。
- XML_FlightQueryOut。フライト情報および乗客情報に関する 2 つの関連要求を生成し、ファンアウトするファンアウト・メッセージ・フロー。
- XML_FlightQueryReply。2 つの要求に応答するために必要な情報を検索します。
- XML_FlightQueryIn。応答を単一の応答メッセージに結合するファンイン・メッセージ・フロー。
XML_FlightQuery のための入力メッセージは、特定のフライトおよびそのフライトの座席を予約した乗客の詳細に関する情報を要求します。
下の図は、XML_FlightQueryIn メッセージ・フローを示しています。

下の表では、XML_FlightQueryIn メッセージ・フローで使用されるノードのタイプをリストしています。
ノード・タイプ |
ノード名 |
MQInput |
XML_FLIGHTQUERY_REPLIES |
AggregateReply |
AggregateReplies |
Compute |
BuildOutputMessage; ProcessTimeout |
MQOutput |
XML_FLIGHTQUERY_OUT; XML_FLIGHTQUERY_TIMEOUT; XML_FLIGHTQUERY_FAIL |
詳しくは、WebSphere Message Broker 資料で XML_FlightQueryIn メッセージ・フローのノードについて調べてください。このメッセージ・フローで使用される ESQL については、
XML_FlightQueryIn メッセージ・フローの作成を参照してください。
XML_FlightQueryIn メッセージ・フローは以下のアクションを実行します。
- XML_FLIGHTQUERY_REPLIES ノードは 2 つの応答メッセージを XML_FLIGHTQUERY_REPLIES キューから取得し、Out ターミナルを通じて、それぞれの応答メッセージを AggregateReplies ノードに渡します。
あるいは、例外がダウンストリームに発行され、メッセージがここにロールバックされたなら、Catch ターミナルを通じて、XML_FLIGHTQUERY_REPLIES ノードから XML_FLIGHTQUERY_FAIL ノードにメッセージが渡され、これはメッセージを XML_FLIGHTQUERY_FAIL キューに書き込みます。
- AggregateReplies ノードは 2 つの応答メッセージを単一の集約応答メッセージに結合し、Out ターミナルを通じて、その集約応答メッセージを BuildOutputMessage ノードに渡します。
タイムアウトのインターバル (AggregateReplies ノードのプロパティーで指定) の間に応答をすべて受け取れず、集約がタイムアウトになってしまう場合は、AggregateReplies ノードにより未完成の集約メッセージが Timeout (タイムアウト) ターミナルを介して ProcessTimeout ノードに渡されます。
次いで ProcessTimeout ノードはメッセージを XML_FLIGHTQUERY_TIMEOUT ノードに渡し、それはメッセージを XML_FLIGHTQUERY_TIMEOUT キューに入れます。
- BuildOutputMessage ノードは、集約された応答メッセージに含まれる情報から、1 つの出力メッセージを作成します。
この出力メッセージには、フライト番号と日付、フライトの全座席数と予約済みの座席数、各クラスの座席の価格、および乗客の名前と予約番号のリストが含まれます。
- BuildOutputMessage ノードは、Out ターミナルを介して出力メッセージを XML_FLIGHTQUERY_OUT ノードに渡し、このノードはその出力メッセージを XML_FLIGHTQUERY_OUT キューに入れます。
『Airline Reservations サンプルについて』に戻る