Das Beispielprogramm 'Airline Reservations' ausführen

Mit dem Beispielprogramm '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 Beispielprogramms '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.

Wenn Sie das Beispielprogramm ausführen, werden in der Anzeige für Probleme im Nachrichtenbroker-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. Dies hat während der Ausführung keinerlei Auswirkungen auf das Beispielprogramm.

Wie Sie den Inhalt der Datenbank des Beispielprogramms anzeigen, hängt vom installierten Datenbankprodukt ab. Verwenden Sie für DB2-Datenbanken die Tools, die von DB2 bereitgestellt werden, z. B. die DB2-Steuerzentrale. Wenn Sie kein Datenbankprodukt installiert haben, verwenden die Beispielprogramme die Datenbank 'Apache Derby'. Sie finden Anweisungen zur Anzeige von Daten in einer Derby-Datenbank unter Den Inhalt einer Derby-Datenbank anzeigen.

Sollten Sie Probleme beim Ausführen des Beispielprogramms haben, lesen Sie den Abschnitt Fehler diagnostizieren.

1. 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. Schalten Sie im Nachrichtenbroker-Toolkit auf die Perspektive 'Anwendungsentwicklung' um.
  2. Erweitern Sie in der Ansicht 'Ressourcennavigator' das Projekt Airline XML Message Flows, klicken Sie dann doppelt auf die Datei reservation1.enqueue, um sie im Editor für Einreihungen in Warteschlangen zu öffnen.
  3. Geben Sie im Editor für Einreihung im Feld Port 2414 ein.
  4. Klicken Sie auf 'In Warteschlange schreiben'. Die erste Eingabenachricht wird in die Warteschlange XML_RESERVATION_IN eingereiht.
  5. Klicken Sie auf der Symbolleiste des Nachrichtenbroker-Toolkits auf den Pfeil des Symbols Nachricht aus Warteschlange abrufen Das Symbol 'Aus Warteschlange entfernen', und klicken Sie dann auf Nachricht abrufen..., um das Dialogfenster 'Nachricht aus Warteschlange entfernen' zu öffnen.
  6. Rufen Sie im Dialogfenster 'Nachricht aus Warteschlange entfernen' vier Antwortnachrichten aus der Warteschlange XML_RESERVATION_OUT auf dem WS-Manager WBRK6_DEFAULT_QUEUE_MANAGER ab; die Portnummer ist 2414. Jede Antwortnachricht bestätigt die Reservierung eines Passagiers 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>
  7. Überprüfen Sie die Tabelle XMLFLIGHTTB in der Datenbank RESERVDB. Der Wert für 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 im Editor für Einreihungen in Warteschlangen die Dateireservation2.enqueue, und klicken Sie dann auf In Warteschlange schreiben. Die zweite Eingabenachricht wird in die Warteschlange XML_RESERVATION_IN eingereiht.
  10. Verwenden Sie das Dialogfenster 'Nachricht aus Warteschlange entfernen', 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.
  11. Überprüfen Sie die Tabelle XMLFLIGHTTB in der Datenbank RESERVDB. Der Wert für 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:
  12. Überprüfen Sie die Tabelle XMLPASSENGERTB in der Datenbank RESERVDB. Der Nachrichtenfluss 'XML_RESERVATION' hat folgende Änderungen vorgenommen:

2. 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.enqueue im Editor für Einreihungen in Warteschlangen.
  2. Geben Sie 2414 im Feld Port ein und klicken Sie dann auf In Warteschlange schreiben. Die erste Eingabenachricht wird in die Warteschlange XML_PASSENGERQUERY_IN eingereiht.
  3. Verwenden Sie das Dialogfenster 'Nachricht aus Warteschlange entfernen', 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>
  4. Öffnen Sie die Datei passengerquery2.enqueue im Editor für Einreihungen in Warteschlangen.
  5. Geben Sie 2414 im Feld Port ein und klicken Sie dann auf In Warteschlange schreiben. Die zweite Eingabenachricht wird in die Warteschlange XML_PASSENGERQUERY_IN eingereiht.
  6. Verwenden Sie das Dialogfenster 'Nachricht aus Warteschlange entfernen', 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>
  7. Vergewissern Sie sich in der Datenbank RESERVDB, dass der Nachrichtenfluss 'XML_PassengerQuery' keinerlei Änderungen an den Daten vorgenommen hat.

3. Nachrichtenfluss XML_FlightQuery ausführen

Der Nachrichtenfluss 'XML_FlightQuery' besteht aus drei kurzen Nachrichtenflüssen, die für den Broker eingesetzt 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.enqueue im Editor für Einreihungen in Warteschlangen.
  2. Geben Sie 2414 im Feld Port ein und klicken Sie dann auf In Warteschlange schreiben. Die Eingabenachricht wird in die Warteschlange XML_FLIGHTQUERY_IN eingereiht.
  3. Verwenden Sie das Dialogfenster 'Nachricht aus Warteschlange entfernen', um eine Antwortnachricht 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>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>
  4. Vergewissern Sie sich in der Datenbank RESERVDB, dass der Nachrichtenfluss 'XML_PassengerQuery' keinerlei Änderungen an den Daten vorgenommen hat.

4. 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.enqueue im Editor für Einreihungen in Warteschlangen.
  2. Geben Sie 2414 im Feld Port ein.
  3. Überprüfen Sie die Benutzerdatenbank RESERVDB, um sicherzustellen, dass die in der Datei 'cancelreservation.enqueue' aufgeführten Reservierungsnummern in der Tabelle XMLPASSENGERTB vorhanden sind. Wenn die Reservierungsnummern in 'cancelreservation.enqueue' nicht vorhanden sind, bearbeiten Sie das Feld Nachrichtendaten.
  4. Klicken Sie auf 'In Warteschlange schreiben'. Die Eingabenachricht wird in die Warteschlange XML_CANCELRESERVATION_IN eingereiht.
  5. Verwenden Sie das Dialogfenster 'Nachricht aus Warteschlange entfernen', 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. Der Nachrichtenfluss 'XML_RESERVATION' hat folgende Änderungen vorgenommen:

Symbol Hauptseite   Zurück zur Beispiel-Homepage