Sobre o Fluxo de Mensagens XML_CancelReservation
O fluxo de mensagens XML_CancelReservation cancela as reservas relacionadas
na mensagem de entrada e atualiza o banco de dados do usuário para mostrar que há
menos reservas feitas e mais assentos disponíveis.
O fluxo de mensagens XML_CancelReservation pode processar uma lista de Números de
Reservas de modo que as reservadas não precisam ser canceladas uma de cada vez.
O diagrama a seguir mostra o fluxo de mensagens XML_CancelReservation.

A tabela a seguir lista os tipos de nós que são utilizados no fluxo de mensagens XML_CancelReservation.
Tipo de Nó |
Nome de Nó |
MQInput |
XML_CANCELRESERVATION_IN |
Compute |
DeleteReservation; IncrementSeat |
Rastrear |
Trace; Trace1; Trace2 |
MQOutput |
XML_CANCELRESERVATION_FAIL1_1; XML_CANCELRESERVATION_FAIL1_2; XML_CANCELRESERVATION_FAIL2; XML_CANCELRESERVATION_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_CancelReservation.
O fluxo de mensagens XML_CancelReservation executa as seguintes ações:
- O nó XML_CANCELRESERVATION_IN pega a mensagem de entrada
a partir da fila XML_CANCELRESERVATION_IN e identifica a mensagem de
entrada como estando no domínio XMLNSC. O fluxo de mensagens deve, portanto, analisar a
mensagem usando o analisador XMLNSC.
- O nó XML_CANCELRESERVATION_IN transmite a mensagem através do terminal Out
para o nó DeleteReservation. Alternativamente, se uma exceção produziu recebimento de
dados e a mensagem foi retornada para cá, o nó XML_CANCELRESERVATION_IN transmite a
mensagem através do terminal Catch para o nó XML_CANCLERESERVATION_FAIL1_1, que coloca a
mensagem na fila XML_CANCELRESERVATION_FAIL1.
- O nó DeleteReservation verifica a tabela XMLPASSENGERTB no banco de dados RESERVDB para
ver se as reservas listadas na mensagem de entrada existem.
- Caso a reserva exista, o nó DeleteReservation remove os passageiros listados na mensagem de entrada a
partir da tabela XMLPASSENGERTB. O nó DeleteReservation transmite a mensagem
através do terminal Out para o nó Trace1. O nó Trace1 registra o estado da mensagem depois que ela deixa o nó DeleteReservation. O rastreio é armazenado no registro de erros local, que é o Visualizador de Eventos no Windows ou o syslog no Linux.
O nó Trace1 transmite a mensagem para o nó IncrementSeat.
- Se as reservas não existirem, o nó DeleteReservation transmite a mensagem
através do terminal Failure para o nó Trace. O nó Trace rastreia quaisquer problemas,
como XML inválido, e se fizeram com que a mensagem fosse transmitida para o nó Trace. O rastreio é armazenadono log de erros local.
O nó Trace então transmite a mensagem através do terminal Out para XML_CANCELRESERVATION_FAIL1_2,
que coloca a mensagem na fila XML_CANCELRESERVATION_FAIL1.
- O nó IncrementSeat atualiza a tabela XMLFLIGHTTB do banco de dados RESERVDB para mostrar que quatro assentos (dois em cada classe) foram liberados. O
nó IncrementSeat então transmite a mensagem através do terminal Out para o nó
XML_CANCELRESERVATION_OUT, que coloca a mensagem na fila XML_CANCELRESERVATION_OUT.
Como alternativa, se houver um problema ao atualizar a tabela XMLFLIGHTTB, o nó IncrementSeat transmitirá a mensagem para o nó Trace2. O nó Trace2 rastreia a mensagem à medida que ela é transmitida entre os nós IncrementSeat e XML_CANCELRESERVATION_FAIL2. O rastreio é armazenadono log de erros local.
O nó XML_CANCELRESERVATION_FAIL2 coloca a mensagem na fila XML_CANCELRESERVATION_FAIL2.
O fluxo de mensagens XML_CancelReservation ilustra um verdadeiro projeto de
mensagem assíncrona no qual a entrega é garantida. Embora existam nós MQOutput no fluxo de mensagens,
eles são para propósitos de teste apenas, e não possuem significado no aplicativo de amostra.
O fluxo de mensagens XML_CancelReservation coloca uma cópia da mensagem de entrada na fila XML_CANCELRESERVATION_OUT
quando ela termina o processamento da mensagem. Não é necessário que o fluxo de
mensagens confirme se a mensagem chegou no seu destino, porque, se a mensagem é
persistente, ela seguramente foi registrada.
Voltar para a amostra About the Airline Reservations