Mustercode 'Airline Reservations' ausführen

Mit dem Mustercode 'Airline Reservations' können Sie folgende Tasks simulieren:

Für jede Task reihen Sie eine Nachricht in eine bestimmte WebSphere MQ-Warteschlange ein. Der entsprechende Nachrichtenfluss empfängt die Nachricht von der Warteschlange und verarbeitet sie. In den folgenden Anweisungen wird beschrieben, wie die zur Verfügung gestellten selbstdefinierenden XML-Nachrichten durch die Nachrichtenflüsse des Mustercodes 'Airline Reservations' eingereiht werden und welche Ausgabe Sie von den Nachrichtenflüssen erwarten können. Da die Nachrichtenflüsse Datenbanken aktualisieren, müssen Sie die Nachrichtenflüsse in der Reihenfolge ausführen, in der sie in den folgenden Anweisungen aufgelistet sind.

Bei Ausführung des Mustercodes werden in der Anzeige für Probleme im WebSphere Message Brokers Toolkit möglicherweise Fehlernachrichten ähnlich der folgenden angezeigt: Nicht auflösbarer Datenbanktabellenverweis T.CLASSTYPE. Diese Warnung zeigt an, dass Definitionen für die Datenbanktabellen nicht in das Projekt importiert wurden. Die Warnung hat während der Ausführung keinerlei Auswirkungen auf den Mustercode.

Wie der Inhalt der Datenbank des Mustercodes angezeigt wird, hängt von dem Datenbankprodukt ab, das installiert ist. Verwenden Sie für DB2-Datenbanken die Tools, die von DB2 bereitgestellt werden, z. B. die DB2-Steuerzentrale.

Sollten bei der Ausführung des Mustercodes Probleme auftreten, lesen Sie den Abschnitt Probleme bei der Ausführung von Mustercodes beheben in der WebSphere Message Broker-Dokumentation.

Hinweis: Wenn mehrere Testnachrichten im Nachrichtenfluss ausgeführt werden, kann dies zu einem offensichtlichen Fehler führen. Dies liegt daran, dass ein Schwellenwert überschritten wurde und die Nachricht den Nachrichtenfluss deswegen anders durchläuft. Zur Behebung dieses Fehlers ist die Datenbank auf ihren ursprünglichen Inhalt zurückzusetzen.

Nachrichtenfluss 'XML_Reservation' ausführen

Mit dem Nachrichtenfluss 'XML_Reservation' werden Plätze für den in der Eingabenachricht aufgeführten Flug reserviert. Die Reservierungen werden mit Antwortnachrichten bestätigt.

So führen Sie den Nachrichtenfluss 'XML_Reservation' aus:

  1. Erweitern Sie in der Ansicht "Brokerentwicklung" das Projekt Airline XML Message Flows und klicken Sie anschließend unter 'Flusstests' doppelt auf reservation1.mbtest, um die Datei im Testclient zu öffnen.
  2. Klicken Sie im Testclient auf In Warteschlange stellen.
  3. Klicken Sie auf Nachricht senden. Die erste Eingabenachricht wird in die Warteschlange XML_RESERVATION_IN eingereiht.
  4. Klicken Sie im Testclient auf Aus Warteschlange entfernen.
  5. Klicken Sie auf Nachricht abrufen, um die erste Nachricht, die die Buchungsbestätigung für Mary Smith enthält, aus der Warteschlange zu lesen. Die Antwortnachricht bestätigt die Reservierung für einen Passagier und enthält dessen vollständigen Namen, die Klasse des Platzes sowie die eindeutige Reservierungsnummer. Im folgenden Beispiel wird das Format einer Antwortnachricht gezeigt:
    <PassengerReservationResponse>
    <ListOfConfirmations>
    <Confirmation>
    <FirstName>Mary</FirstName>
    <LastName>Smith</LastName>
    <Class>F</Class>
    <ReservationNumber>CA937200305251</ReservationNumber>
    </Confirmation>
    </ListOfConfirmations>
    </PassengerReservationResponse>
  6. Wiederholen Sie die vorherigen Schritte, um die verbleibenden drei Nachrichten, die die Buchungsbestätigungen für Diane Rose, Debra Wiess und Atila Wiess enthalten, einzeln aus der Warteschlange 'XML_RESERVATION_OUT' abzurufen.
  7. Überprüfen Sie die Tabelle XMLFLIGHTTB in der Datenbank RESERVDB. Der Wert im Feld RESERVATIONSEQNO ist in allen vier Zeilen um vier erhöht worden. In der Zeile, die den Flug CA937 am 25. Mai 2003 enthält, hat der Nachrichtenfluss 'XML_Reservation' folgende Änderungen vorgenommen:
  8. Überprüfen Sie die Tabelle XMLPASSENGERTB in der Datenbank RESERVDB. Der Nachrichtenfluss 'XML_Reservation' hat folgende Änderungen vorgenommen:
  9. Öffnen Sie die Datei reservation2.mbtest im Testclient und klicken Sie dann aufIn Warteschlange einreihen.
  10. Klicken Sie auf Nachricht senden, um die zweite Eingabenachricht in die Warteschlange 'XML_RESERVATION_IN' zu stellen.
  11. Klicken Sie im Testclient auf Aus Warteschlange entfernen.
  12. Klicken Sie auf Nachricht abrufen, um eine Antwortnachricht aus der Warteschlange 'XML_RESERVATION_OUT' abzurufen.
    Die Antwortnachricht bestätigt die zweite Reservierung für Mary Smith, enthält ihren vollständigen Namen, die Klasse ihres Platzes und ihre eindeutige Reservierungsnummer. Die Struktur der Antwortnachricht entspricht der Struktur der Antworten auf die erste Eingabenachricht.
  13. Überprüfen Sie die Tabelle XMLFLIGHTTB in der Datenbank RESERVDB. Der Wert im Feld RESERVATIONSEQNO ist in allen vier Zeilen um eins erhöht worden. In der Zeile, die den Flug BA039 am 25. Mai 2003 enthält, hat der Nachrichtenfluss 'XML_Reservation' folgende Änderungen vorgenommen:
  14. Überprüfen Sie die Tabelle XMLPASSENGERTB in der Datenbank RESERVDB. Der Nachrichtenfluss 'XML_RESERVATION' hat folgende Änderungen vorgenommen:

Nachrichtenfluss 'XML_PassengerQuery' ausführen

Der Nachrichtenfluss 'XML_PassengerQuery' ruft die Reservierungsdaten des in der Eingabenachricht angegebenen Passagiers ab. Die Daten, die in die Ausgabenachricht geschrieben werden, sind abhängig von den Daten in der Eingabenachricht.

So führen Sie den Nachrichtenfluss 'XML_PassengerQuery' aus:

  1. Öffnen Sie die Datei passengerquery1.mbtest im Testclient und klicken Sie auf In Warteschlange einreihen.
  2. Klicken Sie auf Nachricht senden. Die erste Eingabenachricht wird in die Warteschlange XML_PASSENGERQUERY_IN eingereiht.
  3. Klicken Sie im Testclient auf Aus Warteschlange entfernen.
  4. Klicken Sie auf Nachricht abrufen, um eine Ausgabenachricht aus der Warteschlange 'XML_PASSENGERQUERY_OUT' abzurufen. Die Ausgabenachricht enthält den Namen und die Reservierungsdaten von Debra Weiss, der die in der Eingabenachricht aufgeführte Reservierungsnummer zugeordnet wurde. Im folgenden Beispiel wird das Format der Ausgabenachricht gezeigt:
    <PassengerInfoResponse>
       <PassengerInfo>
          <ReservationNumber>CA937200305253</ReservationNumber>
          <FirstName>Debra</FirstName>
          <LastName>Weiss</LastName>
          <FlightNumber>CA937</FlightNumber>
          <Date>20030525</Date>
          <Class>Y</Class>
       </PassengerInfo>
    <PassengerInfoResponse>
  5. Öffnen Sie die Datei passengerquery2.mbtest im Testclient und klicken Sie aufIn Warteschlange einreihen.
  6. Klicken Sie auf Nachricht senden, um die zweite Eingabenachricht in die Warteschlange 'XML_PASSENGERQUERY_IN' zu stellen.
  7. Klicken Sie im Testclient auf Aus Warteschlange entfernen.
  8. Klicken Sie auf Nachricht abrufen, um eine Ausgabenachricht aus der Warteschlange 'XML_PASSENGERQUERY_OUT' abzurufen. Die Ausgabenachricht enthält Name und Reservierungsdaten zu den beiden Reservierungen, die für Mary Smith getätigt wurden, der Person, die in der Eingabenachricht aufgeführt ist. Im folgenden Beispiel wird das Format der Ausgabenachricht gezeigt:
    <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>
  9. Vergewissern Sie sich in der Datenbank RESERVDB, dass der Nachrichtenfluss 'XML_PassengerQuery' keinerlei Änderungen an den Daten vorgenommen hat.

Nachrichtenflüsse 'XML_FlightQuery' ausführen

Der Nachrichtenfluss 'XML_FlightQuery' besteht aus drei kurzen Nachrichtenflüssen, die für den Broker implementiert und gestartet werden müssen, damit der Nachrichtenfluss 'XML_FlightQuery' ausgeführt werden kann:

Der Nachrichtenfluss 'XML_FlightQuery' ruft Daten über den in der Eingabenachricht aufgeführten Flug sowie eine Liste der Passagiere ab, die für diesen Flug Reservierungen getätigt haben.

So führen Sie den Nachrichtenfluss 'XML_FlightQuery' aus:

  1. Öffnen Sie die Datei flightdetailsquery.mbtest im Testclient und klicken Sie dann aufIn Warteschlange einreihen.
  2. Klicken Sie auf Nachricht senden, um die Eingabenachricht in die Warteschlange 'XML_FLIGHTQUERY_IN' zu stellen.
  3. Klicken Sie im Testclient auf Aus Warteschlange entfernen.
  4. Klicken Sie auf Nachricht abrufen, um eine Ausgabenachricht aus der Warteschlange 'XML_FLIGHTQUERY_OUT' abzurufen. Die Antwortnachricht enthält Informationen zu den in der ersten Klasse und Economy Class insgesamt verfügbaren Sitzplätzen, deren Preis sowie die Anzahl der freien Plätze. Im folgenden Beispiel wird das Format der Antwortnachricht gezeigt:
    <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>Weiss</LastName>
    <Class>Y</Class>
    </Passenger>
    <Passenger>
    <ReservationNumber>CA937200305254</ReservationNumber>
    <FirstName>Atila</FirstName>
    <LastName>Weiss</LastName>
    <Class>F</Class>
    </Passenger>
    </ListOfPassengers>
    </FlightDetailsInfoResponse>
  5. Überprüfen Sie in der Datenbank RESERVDB, ob durch den Nachrichtenfluss 'XML_FlightQuery' Daten geändert wurden.

Nachrichtenfluss 'XML_CancelReservation' ausführen

Der Nachrichtenfluss 'XML_CancelReservation' storniert alle in der Eingabenachricht aufgeführten Reservierungen (anhand der Reservierungsnummer).

So führen Sie den Nachrichtenfluss 'XML_CancelReservation' aus:

  1. Öffnen Sie die Datei cancelreservation.mbtest im Testclient und klicken Sie auf In Warteschlange einreihen.
  2. Überprüfen Sie die Benutzerdatenbank 'RESERVDB', um sicherzustellen, dass die in der Datei cancelreservation.mbtest aufgeführten Reservierungsnummern in der Tabelle 'XMLPASSENGERTB' vorhanden sind. Wenn die Reservierungsnummern in cancelreservation.mbtest nicht vorhanden sind, bearbeiten Sie das Feld Nachrichtendaten.
  3. Klicken Sie auf Nachricht senden. Die Eingabenachricht wird in die Warteschlange XML_CANCELRESERVATION_IN eingereiht.
  4. Klicken Sie im Testclient auf Aus Warteschlange entfernen.
  5. Klicken Sie auf Nachricht abrufen, um eine Ausgabenachricht aus der Warteschlange 'XML_CANCELRESERVATION_OUT' abzurufen. Bei der Ausgabenachricht handelt es sich um eine Kopie der Eingabenachricht.
  6. Überprüfen Sie die Tabelle XMLFLIGHTTB in der Datenbank RESERVDB. In der Zeile, die den Flug CA937 am 25. Mai 2003 enthält, hat der Nachrichtenfluss 'XML_CancelReservation' folgende Änderungen vorgenommen:
  7. Überprüfen Sie die Tabelle XMLPASSENGERTB in der Datenbank RESERVDB. Durch den Nachrichtenfluss 'XML_CancelReservation' wurden die folgenden Änderungen vorgenommen:

Zurück zum Beginn des Mustercodes