Sobre o Fluxo de Mensagens XML_CancelReservation

O fluxo de mensagens XML_CancelReservation cancela as reservas listadas 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, para que as reservas não precisem ser canceladas uma por vez.

A figura 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 do Nó
MQInput XML_CANCELRESERVATION_IN
Compute DeleteReservation; IncrementSeat
Trace Trace; Trace1; Trace2
MQOutput XML_CANCELRESERVATION_FAIL1_1; XML_CANCELRESERVATION_FAIL1_2; XML_CANCELRESERVATION_FAIL2; XML_CANCELRESERVATION_OUT

Para obter informações adicionais, leia sobre os nós no fluxo de mensagem XML_CancelReservation 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 obtém a mensagem de entrada da fila XML_CANCELRESERVATION_IN e identifica a mensagem como estando em um domínio XML. O fluxo de mensagens deve, portanto, analisar a mensagem utilizando o analisador de XML.
  2. O nó XML_CANCELRESERVATION_IN transmite a mensagem, através do terminal Saída, para o nó DeleteReservation. Como alternativa, se uma exceção for lançada no recebimento de dados e a mensagem for retrocedida para cá, o nó XML_CANCELRESERVATION_IN transmitirá a mensagem, através do terminal Capturar, ao nó XML_CANCELRESERVATION_FAIL1, que coloca a mensagem na fila XML_CANCELRESERVATION_FAIL1.
  3. O nó DeleteReservation verifica a tabela XMLPASSENGERTB no banco de dados RESERVDB para consultar se as reservas listadas na mensagem de entrada realmente existem.
  4. Se a reserva existir, o nó DeleteReservation será removido da tabela XMLPASSENGERTB em que os passageiros estão listados na mensagem de entrada. O nó DeleteReservation transmite a mensagem, através do terminal Saída, 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 transmitirá a mensagem, através do terminal Failure, para Trace. O nó Trace rastreia e registra problemas, como xml inválido, que fizeram com que a mensagem fosse transmitida para o nó Trace. O rastreio é armazenado no registro de erros local. O nó Trace, então, transmite a mensagem, através do terminal Saída, para XML_CANCELRESERVATION_FAIL2, 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 Saída, 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 é armazenado no registro 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 design de sistema de mensagens assíncrona, no qual a entrega é garantida. Embora existam nós MQOutput no fluxo de mensagens, eles servem apenas para finalidades de teste 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 termina de processar a mensagem. Não é necessário que o fluxo de mensagens confirme se a mensagem chegou ao seu destino, porque se a mensagem for persistente, ela terá sido registrada de forma segura.

Ícone Página Principal   Voltar para Sobre a Amostra Reservas Aéreas