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:

  1. XML_FlightQueryOut, o fluxo de mensagens fan-out, que gera e difunde dois pedidos relacionados de informações sobre vôos e informações sobre passageiros, consulte Sobre o fluxo de mensagens XML_FlightQueryOut.
  2. XML_FlightQueryReply, que localiza as informações necessárias para responder aos dois pedidos.
  3. XML_FlightQueryIn, o fluxo de mensagens fan-in, que combina as respostas em uma única mensagem de resposta, consulte Sobre o fluxo de mensagens XML_FlightQueryIn.

A mensagem de entrada XML_FlightQuery solicita informações sobre um vôo específico, e os detalhes sobre passageiros que reservaram assentos nesse vôo.

O diagrama a seguir mostra o fluxo de mensagens XML_FlightQueryReply.

Captura de Tela do Fluxo de Mensagens XML_FlightQuery_Reply

A tabela a seguir lista os tipos de nós que são utilizados no fluxo de mensagens XML_FlightQueryReply.

Tipo de Nó Nome de 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 mais informações sobre os nós usados nesta amostra, consulte Nós integrados 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:

  1. O nó XML_FLIGHTQUERY_FLIGHT obtém a mensagem de pedido da fila XML_FLIGHTQUERY_FLIGHT, em seguida transmite a mensagem de pedido através do terminal Out para o nó GetFlightDetails. Alternativamente, se uma exceção tiver produzido um recebimento de dados e a mensagem tiver sido retornada para cá, o nó XML_FLIGHTQUERY_FLIGHT transmite a mensagem através do terminal Catch para o nó XML_FLIGHTQUERY_FAIL_1.
  2. O nó XML_FLIGHTQUERY_PASSENGERS obtém a mensagem de pedido da fila XML_FLIGHTQUERY_PASSENGERS, em seguida transmite a mensagem de pedido através ao terminal Out para o nó GetPassengerDetails. Alternativamente, se uma exceção tiver produzido recebimento de dados e a mensagem tiver sido retornada, o nó XML_FLIGHTQUERY_PASSENGERS transmite a mensagem através do terminal Catch para o nó XML_FLIGHTQUERY_FAIL_2, que coloca a mensagem na fila XML_FLIGHT_QUERY_FAIL.
  3. 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 às informações da mensagem de pedido sobre capacidade, assentos alocados e preços de Classe Econômica e Primeira Classe, e informações sobre a origem e o destino do vôo.
  4. O nó GetFlightDetails transmite a mensagem de pedido modificada através do terminal Out para MQMD_ReplyToQ.
  5. O nó GetPassengerDetails acessa a tabela XMLPASSENGERTB no banco de dados RESERVDB para obter informações sobre os passageiros que fizeram reservas no vôo especificado na mensagem de pedido, e anexa à mensagem de pedido em uma lista de passageiros que fizeram reservas no vôo.
  6. O nó GetPassengerDetails transmite a mensagem de pedido modificada através do terminal Out para MQMD_ReplyToQ.
  7. 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 é WBRK61_DEFAULT_QUEUE_MANAGER.
  8. O nó MQMD_ReplyTo coloca a mensagem na fila XML_FLIGHTQUERY_REPLIES. Esse nome da 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, consulte Sobre o fluxo de mensagens XML_FlightQueryIn.

Voltar para a amostra Sobre as Reservas Aéreas