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 fornece apenas um número de reserva, a mensagem
segue o caminho SinglePassenger e a mensagem de saída contém informações apenas sobre
o vôo com o qual o número de reserva está associado.
- Se a mensagem de entrada fornece somente o nome do passageiro, a mensagem
segue o caminho AllReservations e a mensagem de saída contém informações sobre todos
os vôos nos quais o passageiro tem reservas.
Esta amostra assume que o nome completo do passageiro seja exclusivo, o que não é realista, mas simplifica a amostra.
O fluxo de mensagens utiliza nós RouteToLabel e Label para rotear dinamicamente
uma mensagem com base nas informações na mensagem em si, sem precisar criar uma cadeia de
nós Filtro, que requer um resultado Booleano verdadeiro ou falso para rotear mensagens
ao longo de caminhos particulares.
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.
O diagrama 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 de Nó |
MQInput |
XML_PASSENGERQUERY_IN |
Compute |
DecideOnQuery; GetPassengerInformation; GetReservationsInformation |
RouteToLabel |
RouteToLabel
|
Rótulo |
SinglePassenger; AllReservations |
MQOutput |
XML_PASSENGERQUERY_FAIL_1; XML_PASSENGERQUERY_FAIL_2; XML_PASSENGERQUERY_OUT |
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_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 XMLNSC. O fluxo de mensagens deve, portanto, analisar a
mensagem usando o analisador XMLNSC.
- O nó XML_PASSENGERQUERY_IN transmite a mensagem para o nó DecideOnQuery. Como alternativa:
- Se houver um problema ao identificar mensagem de entrada, o nó
transmite a mensagem através do terminal Failure para o nó XML_PASSENGERQUERY_FAIL_1,
que coloca a mensagem na fila XML_PASSENGERQUERY_FAIL.
- Se uma exceção for produzida por recebimento de dados e a mensagem for
retornada, o nó XML_PASSENGERQUERY_IN transmite a mensagem através do terminal Catch
para o 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 ambiente local com as informações de destino.
- Se a mensagem tiver somente um número de reserva, o nó coloca
Single Passenger no ambiente local, de modo que o nó
RouteToLabel transmite a primeira mensagem de entrada XML_PassengerQuery
(passengerquery1.mbtest) para o nó SinglePassenger.
- Se a mensagem tiver o nome completo de um passageiro, o nó coloca
All Reservations no ambiente local, de modo que o nó
RouteToLabel transmite a segunda mensagem de entrada XML_PassengerQuery
(passengerquery2.mbtest) para o nó AllReservations.
- O nó DecideOnQuery transmite a mensagem e o ambiente local através do terminal Out para o nó RouteToLabel.
- O nó RouteToLabel transmite a mensagem de entrada para o nó Label relevante:
o nó SinglePassenger se o nó DecideOnQuery colocou Single
Passenger no ambiente local; o nó AllReservations se o nó DecideOnQuery colocou
All Reservations no ambiente local.
- Se o nó RouteToLabel transmitiu 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 Out 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 então transmite a mensagem de saída através do terminal Out
para o nó XML_PASSENGERQUERY_OUT.
- Se o nó RouteToLabel transmitiu a mensagem de entrada para o nó
AllReservations, o nó AllReservations transmite a mensagem de entrada, que contém o
nome de um passageiro, através do terminal Out para o nó 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 Out
para XML_PASSENGERQUERY_OUT.
- O nó XML_PASSENGERQUERY_OUT coloca a mensagem de saída na fila XML_PASSENGERQUERY_OUT.
Voltar para a amostra Sobre as Reservas Aéreas