Executando a Amostra Reservas Aéreas
Você pode executar a amostra Reservas Aéreas 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 Reservas Aéreas 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.
Quando você executar a amostra, poderá ver mensagens de erro semelhantes a Referência de tabela de banco de dados T.CLASSTYPE não-resolvida na visualização Problemas do Message Brokers Toolkit. Esse aviso indica que as definições para as tabelas de banco de dados
não foram importadas no projeto. Isso não afeta o comportamento da amostra no tempo de execução.
O modo como você visualiza o conteúdo do banco de dados da amostra depende de qual produto do banco de dados está instalado. Para bancos de dados DB2, utilize as ferramentas fornecidas pelo DB2; por exemplo o DB2 Control Center. Se você não tiver instalado um produto do banco de dados, a amostra utilizará o banco de dados Apache Derby. Para obter instruções sobre como visualizar os dados em um banco de dados Derby, consulte Visualizando o Conteúdo de um Banco de Dados Derby.
Se você encontrar algum problema ao executar a amostra, consulte Diagnosticando Problemas.
1. 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:
- No Message Brokers Toolkit, mude para a perspectiva Desenvolvimento de Aplicativo.
- Na visualização Navegador de Recursos, expanda o projeto Airline XML Message Flows e dê um clique duplo em reservation1.enqueue
para abri-lo no editor Enqueue.
- No editor Enqueue, no campo Porta, digite 2414.
- Clique em Gravar na fila. A primeira mensagem é colocada na fila XML_RESERVATION_IN.
- Na barra de ferramentas do Message Brokers Toolkit, clique na seta no ícone
Obter uma mensagem de uma Fila
e clique em Obter Mensagem...
para abrir o diálogo Desenfileirar Mensagem.
- No diálogo Desenfileirar Mensagem, obtenha quatro mensagens de resposta da fila XML_RESERVATION_OUT no gerenciador de filas WBRK6_DEFAULT_QUEUE_MANAGER; o número da porta é 2414. Cada mensagem de resposta confirma a reserva de um passageiro e contém o nome completo do passageiro,
a classe do assento reservado e o número exclusivo da reserva.
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>
- Verifique a tabela XMLFLIGHTTB no banco de dados RESERVDB. Em todas as linhas, o valor em RESERVATIONSEQNO foi aumentado 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:
- Aumentou em dois o valor em ECONOMICCLASS
- Aumentou em dois o valor em FIRSTCLASS
- Diminuiu em dois o valor em TOTALECONOMIC
- Diminuiu em 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.enqueue no editor Enqueue e, em seguida, clique em Gravar na fila. A segunda mensagem de entrada é colocada na fila XML_RESERVATION_IN.
- Utilize o diálogo Desenfileirar Mensagem para obter uma mensagem de resposta da fila XML_RESERVATION_OUT.
A mensagem de resposta confirma a segunda reserva de Mary Smith e contém seu nome completo, a classe de 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 linhas, o valor
de RESERVATIONSEQNO foi aumentado 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:
- Aumentou em um o valor em FIRSTCLASS
- Diminuiu em 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
2. 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 da mensagem de saída depende das informações
especificadas na mensagem de entrada.
Para executar o fluxo de mensagens XML_PassengerQuery:
- Abra passengerquery1.enqueue no editor Enqueue.
- No campo Porta, digite 2414 e, em seguida, clique em Gravar na FilaA primeira mensagem de entrada é colocada na fila XML_PASSENGERQUERY_IN.
- Utilize o diálogo Desenfileirar 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,
à quem foi alocado 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.enqueue no editor Enqueue.
- No campo Porta, digite 2414 e, em seguida, clique em Gravar na FilaA segunda mensagem de entrada é colocada na fila XML_PASSENGERQUERY_IN.
- Utilize o diálogo Desenfileirar 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.
3. Executando o Fluxo 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 especificado
na mensagem de entrada e uma lista dos passageiros que fizeram reservas
nesse vôo.
Para executar o fluxo de mensagens XML_FlightQuery:
- Abra flightdetailsquery.enqueue no editor Enqueue.
- No campo Porta, digite 2414 e, em seguida, clique em Gravar na FilaA mensagem de entrada é colocada na fila XML_FLIGHTQUERY_IN.
- Utilize o diálogo Desenfileirar Mensagem para obter uma mensagem de resposta da fila XML_FLIGHTQUERY_OUT. A mensagem de resposta contém detalhes sobre quantos assentos existem 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>38</Capacity>
<Used>6</Used>
<Price>300</Price>
</FirstClass>
<EconomyClass>
<Capacity>188</Capacity>
<Used>6</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_PassengerQuery não modificou nenhum dos dados.
4. 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.enqueue no editor Enqueue.
- No campo Porta, digite 2414.
- Verifique o banco de dados do usuário RESERVDB para assegurar-se de que os números das reservas em cancelreservation.enqueue existam na tabela XMLPASSENGERTB. Se os números de reserva
não existirem em cancelreservation.enqueue, edite o campo Dados da mensagem:
- Clique em Gravar na fila. A mensagem de entrada é colocada na fila XML_CANCELRESERVATION_IN.
- Utilize o diálogo Desenfileirar Mensagem para obter uma mensagem de saída da fila XML_CANCELRESERVATION_OUT. A mensagem de saída
é apenas 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:
- Diminuiu em dois o valor em ECONOMICCLASS
- Diminuiu em dois o valor em FIRSTCLASS
- Aumentou em dois o valor em TOTALECONOMIC
- Aumentou em dois o valor em TOTALFIRST
- Verifique a tabela XMLPASSENGERTB no banco de dados RESERVDB. O fluxo de mensagens XML_RESERVATION executou as seguintes alterações:
- Removeu quatro linhas da tabela XMLPASSENGERTB, uma para cada pessoa listada
na mensagem de entrada.
Voltar para Home da Amostra