Sobre o Fluxo de Mensagens XML_PassengerQuery
O fluxo de mensagens XML_PassengerQuery recupera os detalhes da reserva do
passageiro especificado na mensagem de entrada.
O tipo de informações na mensagem de saída depende das informações
especificadas na mensagem de entrada:
- Se a mensagem de entrada fornecer apenas um número de reserva, a mensagem
seguirá o caminho SinglePassenger e a mensagem de saída conterá informações
apenas sobre o vôo ao qual o número de reserva está associado.
- Se a mensagem de entrada fornecer somente o nome de um passageiro, a
mensagem seguirá o caminho AllReservations e a mensagem de saída conterá as informações
sobre todos os vôos nos quais o passageiro tem reservas. Supõe-se que o nome
completo do passageiro seja exclusivo, o que não é realista, mas simplifica a amostra.
Os fluxos de mensagens utilizam os nós RouteToLabel e Label para rotear dinamicamente uma mensagem, com base em
informações da mensagem e sem ter que criar uma cadeia de nós de filtros, o que
exigiria um resultado booleano true/false para rotear as mensagens ao longo de
caminhos específicos.
Duas mensagens de entrada são fornecidas para a execução do fluxo de
mensagens XML_PassengerQuery para demonstrar a recuperação dos dois tipos de
informações descritos.
A figura a seguir mostra o fluxo de mensagens XML_PassengerQuery.

A tabela a seguir lista os tipos de nós que são utilizados no fluxo de mensagens XML_PassengerQuery.
Tipo de Nó |
Nome do Nó |
MQInput |
XML_PASSENGERQUERY_IN |
Compute |
DecideOnQuery; GetPassengerInformation; GetReservationsInformation |
RouteToLabel |
RouteToLabel
|
Label |
SinglePassenger; AllReservations |
MQOutput |
XML_PASSENGERQUERY_FAIL_1; XML_PASSENGERQUERY_FAIL_2; XML_PASSENGERQUERY_OUT |
Para obter informações adicionais, leia sobre os nós no fluxo de mensagens XML_PassengerQuery na documentação do WebSphere Message Broker. Para consultar o ESQL utilizado nesse fluxo de mensagens, consulte Criando o fluxo de mensagens XML_PassengerQuery.
O fluxo de mensagens XML_PassengerQuery executa as seguintes ações:
- O nó XML_PASSENGERQUERY_IN obtém a mensagem de entrada da fila XML_PASSENGERQUERY_IN e identifica a mensagem de entrada como estando em um domínio XML. O fluxo de mensagens deve, portanto, analisar a mensagem utilizando o analisador de XML.
- O nó XML_PASSENGERQUERY_IN transmite a mensagem para o nó DecideOnQuery. Como alternativa:
- Se houver um problema na identificação da mensagem de entrada, o nó transmitirá a mensagem, através do terminal de Falha, ao nó XML_PASSENGERQUERY_FAIL_1, que coloca a mensagem na fila XML_PASSENGERQUERY_FAIL.
- Se uma exceção for lançada no recebimento de dados e a mensagem for retrocedida, o nó XML_PASSENGERQUERY_IN transmitirá a mensagem, através do terminal Capturar, ao nó XML_PASSENGERQUERY_FAIL_2, que coloca a mensagem na fila XML_PASSENGERQUERY_FAIL.
- O nó DecideOnQuery decide qual caminho a mensagem deve seguir através do fluxo de
mensagens.
O caminho que a mensagem segue depende do tipo de informações
fornecidas na mensagem.
O nó atualiza o LocalEnvironment com as informações sobre o destino:
- Se a mensagem contiver somente um número de reserva, o nó colocará Single
Passenger no LocalEnvironment. Isso significa que o nó RouteToLabel transmite a
primeira mensagem de entrada XML_PassengerQuery (passengerquery1.enqueue) ao nó SinglePassenger.
- Se a mensagem contiver o nome completo de um passageiro, o nó colocará All Reservations no LocalEnvironment. Isso significa que o nó RouteToLabel transmite a
segunda mensagem de entrada XML_PassengerQuery (passengerquery2.enqueue) ao nó AllReservations.
- O nó DecideOnQuery transmite a mensagem e o LocalEnvironment, através do terminal Saída, ao nó RouteToLabel.
- O nó RouteToLabel transmite a mensagem de entrada ao nó Label relevante: o nó SinglePassenger se o nó DecideOnQuery colocar Single Passenger no LocalEnvironment; o nó AllReservations se o nó DecideOnQuery colocar All Reservations no LocalEnvironment.
- O nó RouteToLabel transmite a mensagem de entrada para o nó SinglePassenger, o nó SinglePassenger transmite a mensagem de entrada, que contém um número de reserva, através do terminal Saída, para o nó GetPassengerInformation. O nó GetPassengerInformation procura o número da reserva na tabela XMLPASSENGERTB no banco de dados RESERVDB e constrói uma mensagem de saída a partir das informações encontradas na tabela XMLPASSENGERTB, incluindo o número da reserva, o nome completo do passageiro, o número do vôo, a data do vôo e a classe do assento. O nó GetPassengerInformation transmite a mensagem de saída, através do terminal Saída, ao nó XML_PASSENGERQUERY_OUT.
- Se o nó RouteToLabel transmitiu a mensagem de entrada para o nó AllReservations, o nó AllReservations transmitirá a mensagem de entrada, que contém um nome de passageiro, através do terminal Saída, para GetReservationsInformation. O nó GetReservationsInformation procura o nome do passageiro na tabela XMLPASSENGERTB no banco de dados RESERVDB e constrói uma mensagem de saída a partir das informações encontradas na tabela XMLPASSENGERTB, incluindo o nome completo do passageiro, o número do vôo, a data do vôo e a classe do assento para cada reserva que o passageiro fez. O nó GetReservationsInformation, então, transmite a mensagem de saída, através do terminal Saída, para XML_PASSENGERQUERY_OUT.
- O nó XML_PASSENGERQUERY_OUT coloca a mensagem de saída na fila XML_PASSENGERQUERY_OUT.
Voltar para Sobre a Amostra Reservas Aéreas