About the XML_FlightQueryIn message flow

XML_FlightQueryIn is the fan-in message flow in the aggregation example, XML_FlightQuery. XML_FlightQuery is constructed from three short message flows that communicate by putting and getting messages from WebSphere MQ queues. The three message flows in XML_FlightQuery are:

  1. XML_FlightQueryOut, the fan-out message flow, which generates and fans out two related requests for flight information and passenger information, see About the XML_FlightQueryOut message flow.
  2. XML_FlightQueryReply, which finds the information needed to reply to the two requests, see About the XML_FlightQueryReply message flow.
  3. XML_FlightQueryIn, the fan-in message flow, which combines the replies into a single reply message.

The input message for XML_FlightQuery requests information about a specific flight and the details of the passengers who have reserved seats on the flight.

The following diagram shows the XML_FlightQueryIn message flow.

A screen capture of the XML_FlightQuery_Reply message flow

The following table lists the types of nodes that are used in the XML_FlightQueryIn message flow.

Node type Node name
MQInput XML_FLIGHTQUERY_REPLIES
AggregateReply AggregateReplies
Compute BuildOutputMessage; ProcessTimeout
MQOutput XML_FLIGHTQUERY_OUT; XML_FLIGHTQUERY_TIMEOUT; XML_FLIGHTQUERY_FAIL

For more information about the nodes that are used in this sample, see Built-in nodes in the IBM Integration Bus documentation. To see the ESQL that is used in this message flow, see Creating the XML_FlightQueryIn message flow.

The XML_FlightQueryIn message flow performs the following actions:

  1. The XML_FLIGHTQUERY_REPLIES node gets the two reply messages from the XML_FLIGHTQUERY_REPLIES queue, then passes each reply message through the Out terminal to the AggregateReplies node. Alternatively, if an exception has been produced downstream and the message has been rolled back to here, the XML_FLIGHTQUERY_REPLIES node passes the message through the Catch terminal to the XML_FLIGHTQUERY_FAIL node, which puts the message on the XML_FLIGHTQUERY_FAIL queue.
  2. The AggregateReplies node combines the two reply messages into a single, aggregated reply message, then passes the aggregated reply message through the Out terminal to the BuildOutputMessage node. If the aggregation times out because all of the replies have not arrived within the timeout interval (specified in the properties of the AggregateReplies node), the AggregateReplies node passes the incomplete aggregated message through the Timeout terminal to the ProcessTimeout node. The ProcessTimeout node then passes the message to the XML_FLIGHTQUERY_TIMEOUT node, which puts the message on the XML_FLIGHTQUERY_TIMEOUT queue.
  3. The BuildOutputMessage node builds a single output message from the information in the aggregated reply message. The output message contains the flight number and date; the capacity, number of seats booked, and seat price for each class; a list of passengers' names and their reservation numbers.
  4. The BuildOutputMessage node passes the output message through the Out terminal to the XML_FLIGHTQUERY_OUT node, which puts the output message on the XML_FLIGHTQUERY_OUT queue.

Back to About the Airline Reservations sample