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.

Uma Captura de Tela do 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:

  1. 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.
  2. 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.
  3. O nó DeleteReservation verifica a tabela XMLPASSENGERTB no banco de dados RESERVDB para ver se as reservas listadas na mensagem de entrada existem.
  4. 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.
  5. 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.
  6. 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