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 which 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.
  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 details of the passengers who have reserved seats on the flight.

The following figure 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, read about the nodes in the XML_FlightQueryOut message flow 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 XML domain. The message flow must, therefore, parse the message using the XML 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 thrown 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, also 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 also 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 also 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.

Main Page icon   Back to About the Airline Reservations sample