Executando a Amostra Airline Reservations
Você pode executar a amostra Airline Reservations para simular as seguintes tarefas:
- Fazendo reservas em um vôo.
- Solicitando informações sobre um passageiro.
- Solicitando informações sobre um vôo específico e sua lista de
passageiros.
- Cancelando uma reserva.
Para cada tarefa, você coloca uma mensagem em uma fila específica do WebSphere MQ.
O fluxo de mensagens adequado obtém a mensagem da fila e processa a mensagem.
As seguintes instruções descrevem como colocar as mensagens XML autodefinidas fornecidas através dos fluxos de mensagens da amostra Airline Reservations e qual saída pode ser esperada na recepção dos fluxos de mensagens.
Como os fluxos de mensagens atualizam os bancos de dados, você deve executá-los na ordem em que estão listados nas seguintes instruções.
Ao executar a amostra, poderá ver mensagens de erro semelhantes a Referência da tabela
de banco de dados T.CLASSTYPE não pode ser resolvida na visualização Problemas do WebSphere Message
Brokers Toolkit.
Esse aviso indica que as definições para as tabelas de banco de dados
não foram importadas no projeto.
Esse aviso não afeta o comportamento da amostra no tempo de execução.
Como você visualiza o conteúdo do banco de dados de amostra depende de qual produto de
banco de dados está instalado.
Para bancos de dados DB2, utilize as ferramentas fornecidas pelo DB2; por exemplo o DB2 Control Center.
Se você encontrar algum problema ao executar a amostra, consulte
Resolvendo problemas ao executar amostras na
documentação do WebSphere Message Broker.
Nota: Executar diversas mensagens de teste através do fluxo pode resultar em uma falha aparente.
Essa falha aparente é causada por um limite passado, o que faz com que a mensagem passe pelo fluxo de forma
diferente.
Para resolver essa falha aparente, reverta o banco de dados para o conteúdo original.
Executando o Fluxo de Mensagens XML_Reservation
O fluxo de mensagens XML_Reservation reserva assentos no vôo listado na mensagem de entrada e
gera mensagens de resposta para os passageiros para confirmar suas reservas.
Para executar o fluxo de mensagens XML_Reservation:
- Na visualização "Desenvolvimento do Intermediário", expanda o projeto
Fluxos de Mensagens XML Aéreas, sob Testes do Fluxo com um
clique duplo no arquivo reservation1.mbtest para abri-lo
no Cliente de Teste.
- No Cliente de Teste, clique em Enfileirar.
- Clique em Enviar Mensagem. A primeira mensagem é colocada na fila XML_RESERVATION_IN.
- No Cliente de Teste, clique em Desenfileirar.
- Clique em Obter Mensagem para ler a primeira
mensagem da fila, confirmando o registro de Mary Smith.
A mensagem de resposta confirma a reserva de um passageiro e contém o nome completo do
passageiro, a classe do assento que reservaram, e seu número de reserva exclusivo.
O exemplo a seguir mostra o formato de uma mensagem de resposta:
<PassengerReservationResponse>
<ListOfConfirmations>
<Confirmation>
<FirstName>Mary</FirstName>
<LastName>Smith</LastName>
<Class>F</Class>
<ReservationNumber>CA937200305251</ReservationNumber>
</Confirmation>
</ListOfConfirmations>
</PassengerReservationResponse>
- Repita a etapa anterior para obter cada uma das três mensagens restantes,
confirmando os registros para Diane Rose, Debra Wiess e Atila Wiess, da fila XML_RESERVATION_OUT.
- Verifique a tabela XMLFLIGHTTB no banco de dados RESERVDB.
Em todas as filas, o valor no campo RESERVATIONSEQNO
aumentou em quatro. Na linha
para o vôo CA937 em 25 de maio de 2003, o fluxo de mensagens XML_Reservation fez
as seguintes alterações:
- Aumentado por dois o valor em ECONOMICCLASS
- aumentado por dois o valor em FIRSTCLASS
- Diminuído por dois o valor em TOTALECONOMIC
- Diminuído por dois o valor em TOTALFIRST
- Verifique a tabela XMLPASSENGERTB no banco de dados RESERVDB. O fluxo de mensagens XML_Reservation fez as seguintes alterações:
- Incluiu quatro novas linhas à tabela XMLPASSENGERTB, uma para cada pessoa
listada na mensagem de entrada
- Alocou um número de reserva exclusivo para cada reserva
- Abra reservation2.mbtest no Cliente de Teste, clique em Enfileirar.
- Clique em Enviar Mensagem para colocar a segunda mensagem
de entrada na fila XML_RESERVATION_IN.
- No Cliente de Teste, clique em Desenfileirar.
- Clique em Obter Mensagem para obter uma mensagem de resposta a partir da
fila XML_RESERVATION_OUT.
A mensagem de resposta confirma a segunda reserva para Mary
Smith, e contém seu nome completo, a classe do assento que ela reservou e seu número de
reserva exclusivo. A estrutura da mensagem de resposta é a mesma das respostas para a primeira mensagem de entrada.
- Verifique a tabela XMLFLIGHTTB no banco de dados RESERVDB.
Em todas as filas, o valor em RESERVATIONSEQNO
aumentou em um. Na linha para o vôo
BA039, em 25 de maio de 2003, o fluxo de mensagens XML_Reservation
efetuou as seguintes alterações:
- Aumentado por um o valor em FIRSTCLASS
- Diminuído por um o valor em TOTALFIRST
- Verifique a tabela XMLPASSENGERTB no banco de dados RESERVDB.
O fluxo de mensagens XML_RESERVATION executou as seguintes alterações:
- Incluiu uma nova linha à tabela XMLPASSENGERTB para a pessoa mencionada na
mensagem de entrada
- Alocou um número de reserva exclusivo à reserva
Executando 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 fornecidas na
mensagem de entrada.
Para executar o fluxo de mensagens XML_PassengerQuery:
- Abra passengerquery1.mbtest no Cliente de Teste, clique em Enfileirar.
- Clique em Enviar Mensagem. A primeira mensagem de entrada é colocada na fila XML_PASSENGERQUERY_IN.
- No Cliente de Teste, clique em Desenfileirar.
- Clique em Obter Mensagem para obter uma mensagem de saída da
fila XML_PASSENGERQUERY_OUT. A mensagem de saída contém o nome e os detalhes da
reserva de Debra Weiss, que alocou o número de reserva especificado na mensagem de
entrada. O exemplo a seguir mostra o formato de uma mensagem de saída:
<PassengerInfoResponse>
<PassengerInfo>
<ReservationNumber>CA937200305253</ReservationNumber>
<FirstName>Debra</FirstName>
<LastName>Weiss</LastName>
<FlightNumber>CA937</FlightNumber>
<Date>20030525</Date>
<Class>Y</Class>
</PassengerInfo>
<PassengerInfoResponse>
- Abra passengerquery2.mbtest no Cliente de Teste,
clique em Enfileirar.
- Clique em Enviar Mensagem para colocar a segunda mensagem de entrada na fila
XML_PASSENGERQUERY_IN.
- No Cliente de Teste, clique em Desenfileirar.
- Clique em Obter Mensagem para obter uma mensagem de saída da
fila XML_PASSENGERQUERY_OUT.
A mensagem de saída
contém o nome e os detalhes de reserva de ambas as reservas feitas
por Mary Smith, a passageira especificada na mensagem de entrada. O exemplo a seguir mostra o formato de uma mensagem de saída:
<PassengerInfoResponse>
<ListOfReservations>
<Reservation>
<FlightNumber>CA937</FlightNumber>
<Date>20030525</Date>
<Class>F</Class>
</Reservation>
<Reservation>
<FlightNumber>BA039</FlightNumber>
<Date>20030525</Date>
<Class>F</Class>
</Reservation>
</ListOfReservations>
</PassengerInfoResponse>
- Verifique o banco de dados RESERVDB para ver se o fluxo de mensagens XML_PassengerQuery não modificou nenhum dos dados.
Executando os fluxos de mensagens XML_FlightQuery
O fluxo de mensagens XML_FlightQuery é construído a partir de três pequenos fluxos de mensagens.
Todos os três fluxos de mensagens devem ser implementados no intermediário e iniciados para que XML_FlightQuery
funcione:
- XML_FlightQueryOut
- XML_FlightQueryReply
- XML_FlightQueryIn
O fluxo de mensagens XML_FlightQuery recupera informações sobre o vôo que estão
especificadas na mensagem de entrada, e uma lista de passageiros que fizeram reservas
naquele vôo.
Para executar o fluxo de mensagens XML_FlightQuery:
- Abra flightdetailsquery.mbtest no Cliente de Teste, clique em Enfileirar.
- Clique em Enviar Mensagem para colocar a mensagem de entrada na fila
XML_FLIGHTQUERY_IN.
- No Cliente de Teste, clique em Desenfileirar.
- Clique em Obter Mensagem para obter uma mensagem de saída da fila XML_FLIGHTQUERY_OUT.
A
mensagem de resposta contém os detalhes de quantos assentos há na Primeira Classe e na
Classe Econômica, o custo dos assentos e quantos assentos estão disponíveis. O exemplo a seguir mostra o formato da mensagem de resposta:
<FlightDetailsInfoResponse>
<Flight number="CA937" Flightdate="20030525">
<FirstClass>
<Capacity>48</Capacity>
<Used>2</Used>
<Price>300</Price>
</FirstClass>
<EconomyClass>
<Capacity>198</Capacity>
<Used>2</Used>
<Price>200</Price>
</EconomyClass>
<Origin>BEIJING</Origin>
<Destination>LONDON</Destination>
</Flight>
<ListOfPassengers>
<Passenger>
<ReservationNumber>CA937200305251</ReservationNumber>
<FirstName>Mary</FirstName>
<LastName>Smith</LastName>
<Class>F</Class>
</Passenger>
<Passenger>
<ReservationNumber>CA937200305252</ReservationNumber>
<FirstName>Diane</FirstName>
<LastName>Rose</LastName>
<Class>Y</Class>
</Passenger>
<Passenger>
<ReservationNumber>CA937200305253</ReservationNumber>
<FirstName>Debra</FirstName>
<LastName>Wiess</LastName>
<Class>Y</Class>
</Passenger>
<Passenger>
<ReservationNumber>CA937200305254</ReservationNumber>
<FirstName>Atila</FirstName>
<LastName>Wiess</LastName>
<Class>F</Class>
</Passenger>
</ListOfPassengers>
</FlightDetailsInfoResponse>
- Verifique o banco de dados RESERVDB para ver se o fluxo de
mensagens XML_FlightQuery não modificou nenhum dos dados.
Executando o Fluxo de Mensagens XML_CancelReservation
O fluxo de mensagens XML_CancelReservation cancela as reservas que estão listadas,
pelos seus números de reserva, na mensagem de entrada.
Para executar o fluxo de mensagens XML_CancelReservation:
- Abra cancelreservation.mbtest no Cliente de Teste,
clique em Enfileirar.
- Verifique o banco de dados do usuário RESERVDB para assegurar-se de que os números de reserva
em cancelreservation.mbtest existem na tabela XMLPASSENGERTB.
Caso os números de reserva não existam em cancelreservation.mbtest,
edite o campo Dados da mensagem.
- Clique em Enviar Mensagem.
A mensagem de entrada é colocada na fila XML_CANCELRESERVATION_IN.
- No Cliente de Teste, clique em Desenfileirar.
- Clique em Obter Mensagem para obter uma mensagem de saída da fila XML_CANCELRESERVATION_OUT. A mensagem de
saída é uma cópia da mensagem de entrada.
- Verifique a tabela XMLFLIGHTTB no banco de dados RESERVDB. Na linha para o vôo
CA937 em 25 de maio de 2003, o fluxo de mensagens XML_CancelReservation fez as
seguintes alterações:
- Diminuído por dois o valor em ECONOMICCLASS
- Diminuído por dois o valor em FIRSTCLASS
- Aumentado por dois o valor em TOTALECONOMIC
- Aumentado por dois o valor em TOTALFIRST
- Verifique a tabela XMLPASSENGERTB no banco de dados RESERVDB. O
fluxo de mensagens XML_CancelReservation fez as seguintes alterações:
- Removeu quatro linhas da tabela XMLPASSENGERTB, uma para
cada pessoa listada na mensagem de entrada.
Voltar para o Início da Amostra