About the XML_FlightQueryOut message flow

XML_FlightQueryOut is the fan-out message flow in the aggregation example, XML_FlightQuery. XML_FlightQuery is constructed from three short message flows that communicate by getting, aggregating, and putting messages on to WebSphere MQ local 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.
  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, see About the XML_FlightQueryIn message flow.

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_FlightQueryOut message flow.

A screen capture of the XML_FlightQuery_Out message flow

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

Node type Node name
MQInput XML_FLIGHTQUERY_IN
AggregateControl RequestDetails
MQOutput XML_FLIGHTQUERY_FAIL; XML_FLIGHTQUERY_FLIGHT; XML_FLIGHTQUERY_PASSENGERS
AggregateRequest RecordFlightRequest; RecordPassengerRequest

For more information about the nodes that are used in this sample, see Built-in nodes in the WebSphere Message Broker documentation. To see the ESQL that is used in this message flow, see Creating the XML_FlightQueryOut message flow.

The XML_FlightQueryOut message flow performs the following actions:

  1. The XML_FLIGHTQUERY_IN node gets the request message from the XML_FLIGHTQUERY_IN queue and identifies the input message as being in the XMLNSC domain. The message flow must, therefore, parse the message by using the XMLNSC parser.
  2. The XML_FLIGHTQUERY_IN node passes the request message through the Out terminal to the RequestDetails node. Alternatively, if an exception has been produced downstream and the message is rolled back to here, the XML_FLIGHTQUERY_IN node passes the message through the Catch terminal to the XML_FLIGHTQUERY_FAIL node, which puts the message on the XML_FLIGHTQUERY_FAIL queue.
  3. The RequestDetails node generates the request messages:
  4. The RequestDetails node passes the flight request message through the Out terminal to the XML_FLIGHTQUERY_FLIGHT node, and passes the passenger request message through the Out terminal to the XML_FLIGHTQUERY_PASSENGERS node.
  5. The XML_FLIGHTQUERY_FLIGHT node puts the flight request message on the XML_FLIGHTQUERY_FLIGHT queue, and passes the flight request message through the Out terminal to the RecordFlightRequest node. Meanwhile, the XML_FLIGHTQUERY_PASSENGERS node puts the passenger request message on the XML_FLIGHTQUERY_PASSENGERS queue, and passes the passenger request message through the Out terminal to the RecordPassengerRequest node.
  6. The RequestDetails node stores the state of the aggregation internally in the broker.

The XML_FlightQueryReply message flow continues the aggregation, see About the XML_FlightQueryReply message flow.

Back to About the Airline Reservations sample