Sobre o Fluxo de Mensagens XML_FlightQueryReply
O XML_FlightQueryReply é o fluxo de mensagens de resposta no exemplo de agregação,
XML_FlightQuery. O XML_FlightQuery é construído a partir de três fluxos de mensagens curtos que se comunicam obtendo, agregando e colocando mensagens nas filas locais do WebSphere MQ. Os três fluxos de mensagens do XML_FlightQuery
são:
- XML_FlightQueryOut, o fluxo de mensagens de fan-out, que gera e difunde dois pedidos relacionados de informações sobre vôo e informações sobre o passageiro.
- XML_FlightQueryReply, que localiza as informações necessárias para responder aos dois
pedidos.
- XML_FlightQueryIn, o fluxo de mensagens de recepção
que combina as respostas em uma única mensagem de resposta.
A mensagem de entrada para XML_FlightQuery solicita informações sobre um vôo específico
e detalhes sobre os passageiros com assentos reservados nesse vôo.
A figura a seguir mostra o fluxo de mensagens XML_FlightQueryReply.

A tabela a seguir lista os tipos de nós que são utilizados no fluxo de mensagens XML_FlightQueryReply.
Tipo de Nó |
Nome do Nó |
MQInput |
XML_FLIGHTQUERY_FLIGHT; XML_FLIGHTQUERY_PASSENGERS |
Compute |
GetFlightDetails; GetPassengerDetails |
MQReply |
MQMD_ReplyToQ |
MQOutput |
XML_FLIGHTQUERY_FAIL_1; XML_FLIGHTQUERY_FAIL_2 |
Para obter informações adicionais, leia sobre os nós no fluxo de mensagens XML_FlightQueryReply na documentação do WebSphere Message Broker. Para consultar o ESQL utilizado nesse fluxo de mensagens, consulte Criando o fluxo de mensagens XML_FlightQueryReply.
O fluxo de mensagens XML_FlightQueryReply executa as seguintes ações:
- O nó XML_FLIGHTQUERY_FLIGHT coloca a mensagem de pedido na fila XML_FLIGHTQUERY_FLIGHT, então, transmite a mensagem de pedido, através do terminal Saída, para o nó GetFlightDetails. Como alternativa, se uma exceção for lançada no recebimento de
dados e a mensagem for retrocedida para cá, o nó XML_FLIGHTQUERY_FLIGHT transmitirá a mensagem, através do terminal Capturar, ao nó XML_FLIGHTQUERY_FAIL_1.
- O nó XML_FLIGHTQUERY_PASSENGERS obtém a mensagem de pedido na fila XML_FLIGHTQUERY_PASSENGERS, então, transmite a mensagem de pedido, através do terminal Saída, para o nó GetPassengerDetails. Como alternativa,
se uma exceção for lançada no recebimento de dados e a mensagem for retrocedida, o nó XML_FLIGHTQUERY_PASSENGERS transmitirá a mensagem, através do terminal Capturar, ao nó
XML_FLIGHTQUERY_FAIL_2, que coloca a mensagem na fila XML_FLIGHT_QUERY_FAIL.
- O nó GetFlightDetails acessa a tabela XMLFLIGHTTB no banco de dados RESERVDB para obter informações sobre o vôo especificado na mensagem de pedido e anexa à mensagem de pedido informações sobre capacidade, assentos alocados e preço para a Primeira Classe e a Classe Econômica e informações sobre a origem e o destino do vôo.
- O nó GetFlightDetails transmite a mensagem de pedido modificada, através do terminal Saída, para MQMD_ReplyToQ.
- O nó GetPassengerDetails acessa a tabela XMLPASSENGERTB do banco de dados RESERVDB para obter informações sobre os passageiros com reservas para o vôo especificado na mensagem
de pedido e anexa à mensagem de pedido uma lista de passageiros com reserva para o vôo.
- O nó GetPassengerDetails transmite a mensagem de pedido modificada, através do terminal Saída, para MQMD_ReplyToQ.
- O nó MQMD_ReplyTo verifica no cabeçalho MQMD da mensagem os valores ReplyToQ e
ReplyToQMgr. O valor de ReplyToQ é XML_FLIGHTQUERY_REPLIES e o valor de ReplyToQMgr é WBRK6_DEFAULT_QUEUE_MANAGER.
- O nó MQMD_ReplyTo coloca a mensagem na fila XML_FLIGHTQUERY_REPLIES. Observe que esse nome de fila não está nas propriedades do nó; está no cabeçalho MQMD da mensagem.
O fluxo de mensagens XML_FlightQueryIn continua a agregação.
Voltar para Sobre a Amostra Reservas Aéreas