Mustercode 'Simplified Database Routing' ausführen

Mit dem Mustercode 'Simplified Database Routing' können die folgenden Tasks veranschaulicht werden:

Für jede Task reihen Sie eine Nachricht in dieselbe WebSphere MQ-Warteschlange SIMPLERROUTEDB_IN ein. Der Nachrichtenfluss 'SimplifiedDBRouting' empfängt die Nachricht aus der Warteschlange und verarbeitet sie. In den folgenden Anweisungen wird beschrieben, wie die mitgelieferten selbstdefinierenden XML-Nachrichten durch den Nachrichtenfluss des Mustercodes 'Simplified Database Routing' geleitet werden und welche Ausgabe des Nachrichtenflusses in den einzelnen Fällen zu erwarten ist. Da die Datenbank SROUTEDB nicht mit den Nachrichten aktualisiert wird, können die vier Nachrichten in beliebiger Reihenfolge in den Nachrichtenfluss gesendet werden.

Der Inhalt der Musterdatenbank kann angezeigt werden. Verwenden Sie für DB2-Datenbanken die Tools, die von DB2 bereitgestellt werden, z. B. die DB2-Steuerzentrale.

Bei der Ausführung des Mustercodes werden in der Ansicht 'Probleme' von WebSphere Message Broker Toolkit unter Umständen Fehlernachrichten oder Warnungen wie The XMLNSC schema element was not found (XMLNSC-Schemaelement konnte nicht gefunden werden) und Die Syntax des obligatorischen Ausdrucks ist nicht gültig angezeigt. Diese Warnungen bzw. Fehlernachrichten weisen darauf hin, dass die XPath-Ausdrücke in den Eigenschaften einiger Knoten im Nachrichtenfluss den im WebSphere Message Broker Toolkit als Vorgaben definierten Anforderungen für die XPath-Validierung nicht entsprechen. Diese Fehlernachrichten haben keinerlei Auswirkungen auf den Mustercode während der Laufzeit. Wenn allerdings die XPath-Validierungsvorgaben so festgelegt sind, dass in der Ansicht 'Probleme' Fehlernachrichten angezeigt werden, ist es nicht möglich, den Nachrichtenfluss einer Brokerarchivdatei hinzuzufügen bzw. eine Brokerarchivdatei wiederherzustellen, die den Nachrichtenfluss bereits enthält. Außerdem kann der Nachrichtenfluss möglicherweise nicht im Nachrichtenflusseditor angezeigt werden. Gehen Sie wie folgt vor, um weniger strenge XPath-Validierungsvorgaben zu definieren und um anstelle von Fehlernachrichten Warnungen anzuzeigen:

  1. Klicken Sie auf Window (Fenster) > Einstellungen, und erweitern Sie den Eintrag Brokerentwicklung.
  2. Erweitern Sie XPath und klicken Sie auf Auswertung.
  3. Wählen Sie für die einzelnen Auswertungsoptionen im Menü jeweils Warnung aus.
  4. Klicken Sie auf OK.
  5. Speichern Sie den Nachrichtenfluss, nachdem Sie die Einstellungen entsprechend geändert haben, dass anstelle von Fehlern Warnungen angezeigt werden. Beim Speichern wird der Nachrichtenfluss erneut ausgewertet.

Wenn bei Ausführung des Mustercodes in der Warteschlange 'SIMPLERROUTEDB_FAILURE' Nachrichten angezeigt werden, müssen Sie prüfen, ob die Standard-DBMS-Einstellungen für den JDBC-Provider, die in der Registrierungsdatenbank des Brokers für den JDBC-Provider-Alias 'SIMPLERROUTEDB' festgelegt sind, für Ihre Umgebung korrekt sind. Weitere Informationen finden Sie unter JDBC-Provider-Eintrag für die Datenbank unter DB2 erstellen oder JDBC-Provider-Eintrag für eine Oracle-Datenbank erstellen. 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.

Ausführung des Nachrichtenflusses 'SimplifiedDBRouting' mit der Testnachricht aus der Datei usedbretrievenode.mbtest

Der Nachrichtenfluss 'SimplifiedDBRouting' ruft Einzelangaben zu dem im Feld EmpNumber (Personalnummer) der Eingabenachricht aufgeführten Mitarbeiter ab. Die Nachricht wird vom Nachrichtenfluss geändert und schließlich wird in einer zweiten Datenbanksuche der Inhalt der Nachricht mit den Einzeldaten des Vorgesetzten des Mitarbeiters verglichen.

Gehen Sie wie folgt vor, um den Nachrichtenfluss 'SimplifiedDBRouting' auszuführen:

  1. Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt Simplified Database Routing Message Flows und klicken Sie doppelt auf die Datei usedbretrievenode.mbtest, um sie im Testclient zu öffnen.
  2. Klicken Sie im Testclient auf In Warteschlange stellen.
  3. Klicken Sie auf Nachricht senden. Die Eingabenachricht wird in die Warteschlange SIMPLERROUTEDB_IN eingereiht.
  4. Klicken Sie im Testclient auf die erste Option Aus Warteschlange entfernen.
  5. Klicken Sie auf Nachricht abrufen, um eine Nachricht aus der Warteschlange SIMPLERROUTEDB_SNRSTAFF zu lesen. In der Antwortnachricht wird bestätigt, dass David Brown (Mitarbeiter: 000010) als älterer Mitarbeiter in der Firma protokolliert und anerkannt werden muss. Im folgenden Beispiel wird das Format einer Antwortnachricht gezeigt:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>D01</WorkDept>
    </EmpRecord>
  6. Klicken Sie im Testclient auf die zweite Option Aus Warteschlange entfernen.
  7. Klicken Sie auf Nachricht abrufen, um eine Nachricht aus der Warteschlange SIMPLERROUTEDB_ORDERCLOCK zu lesen. In der Antwortnachricht wird bestätigt, dass David Brown (Mitarbeiter: 000010) von seinem Vorgesetzten eine Uhr als Geschenk für zehnjährige Firmenzugehörigkeit erhalten muss. Im folgenden Beispiel wird das Format einer Antwortnachricht gezeigt:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>D01</WorkDept>
    </EmpRecord>

Ausführung des Nachrichtenflusses 'SimplifiedDBRouting' mit der Testnachricht aus der Datei usedbretrievenode_nofiltermatch.mbtest

Der Nachrichtenfluss 'SimplifiedDBRouting' ruft Einzelangaben zu dem im Feld EmpNumber (Personalnummer) der Eingabenachricht aufgeführten Mitarbeiter ab. Die Nachricht wird vom Nachrichtenfluss geändert und schließlich wird in einer zweiten Datenbanksuche der Inhalt der Nachricht mit den Einzeldaten des Vorgesetzten des Mitarbeiters verglichen.

Gehen Sie wie folgt vor, um den Nachrichtenfluss 'SimplifiedDBRouting' auszuführen:

  1. Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt Simplified Database Routing Message Flows und klicken Sie doppelt auf die Datei usedbretrievenode_nofiltermatch.mbtest, um sie im Testclient zu öffnen.
  2. Klicken Sie im Testclient auf In Warteschlange stellen.
  3. Klicken Sie auf Nachricht senden. Die Eingabenachricht wird in die Warteschlange SIMPLERROUTEDB_IN eingereiht.
  4. Klicken Sie im Testclient auf Aus Warteschlange entfernen.
  5. Klicken Sie auf Nachricht abrufen, um eine Nachricht aus der Warteschlange SIMPLERROUTEDB_DEFAULT zu lesen. In der Antwortnachricht wird bestätigt, dass Sally Kwan (Mitglied: 000020) keinem der Filterausdrücke des DatabaseRoute-Knotens entspricht, da sie noch keine zehn Jahre in der Firma arbeitet und selbst Abteilungsleiterin und somit nicht älter als ihr Abteilungsleiter (sie selbst) sein kann. Folglich wird die geänderte Eingabenachricht an die Standardwarteschlange weitergeleitet. Im folgenden Beispiel wird das Format einer Antwortnachricht gezeigt:
    <EmpRecord>
          	<EmpNumber>000020</EmpNumber>
          	<FirstName>SALLY</FirstName>
          	<LastName>KWAN</LastName>
          	<YrsInService>9</YrsInService>
          	<AgeInYears>27</AgeInYears>
          	<WorkDept>D00</WorkDept>
    </EmpRecord>

Ausführung des Nachrichtenflusses 'SimplifiedDBRouting' mit der Testnachricht aus der Datei bypassdbretrievenode.mbtest

Der Nachrichtenfluss 'SimplifiedDBRouting' vergleicht die Einzeldaten zu dem Mitarbeiter in der Eingabenachricht mit den Einzeldaten zu seinem Vorgesetzten aus einer Datenbanksuche.

Gehen Sie wie folgt vor, um den Nachrichtenfluss 'SimplifiedDBRouting' auszuführen:

  1. Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt Simplified Database Routing Message Flows und klicken Sie doppelt auf die Datei bypassdbretrievenode.mbtest, um sie im Testclient zu öffnen.
  2. Klicken Sie im Testclient auf In Warteschlange stellen.
  3. Klicken Sie auf Nachricht senden. Die Eingabenachricht wird in die Warteschlange SIMPLERROUTEDB_IN eingereiht.
  4. Klicken Sie im Testclient auf die erste Option Aus Warteschlange entfernen.
  5. Klicken Sie auf Nachricht abrufen, um eine Nachricht aus der Warteschlange SIMPLERROUTEDB_SNRSTAFF zu lesen. In der Antwortnachricht wird bestätigt, dass David Brown (Mitarbeiter: 000010) als älterer Mitarbeiter in der Firma protokolliert und anerkannt werden muss. Im folgenden Beispiel wird das Format einer Antwortnachricht gezeigt:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>D01</WorkDept>
    </EmpRecord>
  6. Klicken Sie im Testclient auf die zweite Option Aus Warteschlange entfernen.
  7. Klicken Sie auf Nachricht abrufen, um eine Nachricht aus der Warteschlange SIMPLERROUTEDB_ORDERCLOCK zu lesen. In der Antwortnachricht wird bestätigt, dass David Brown (Mitarbeiter: 000010) von seinem Vorgesetzten eine Uhr als Geschenk für zehnjährige Firmenzugehörigkeit erhalten muss. Im folgenden Beispiel wird das Format einer Antwortnachricht gezeigt:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>D01</WorkDept>
    </EmpRecord>

Ausführung des Nachrichtenflusses 'SimplifiedDBRouting' mit der Testnachricht aus der Datei bypassdbretrievenode_keynotfound.mbtest

Der Nachrichtenfluss 'SimplifiedDBRouting' vergleicht die Einzeldaten zu dem Mitarbeiter in der Eingabenachricht mit den Einzeldaten zu seinem Vorgesetzten aus einer Datenbanksuche.

Gehen Sie wie folgt vor, um den Nachrichtenfluss 'SimplifiedDBRouting' auszuführen:

  1. Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt Simplified Database Routing Message Flows und klicken Sie doppelt auf die Datei bypassdbretrievenode_keynotfound.mbtest, um sie im Testclient zu öffnen.
  2. Klicken Sie im Testclient auf In Warteschlange stellen.
  3. Klicken Sie auf Nachricht senden. Die Eingabenachricht wird in die Warteschlange SIMPLERROUTEDB_IN eingereiht.
  4. Klicken Sie im Testclient auf Aus Warteschlange entfernen.
  5. Klicken Sie auf Nachricht abrufen, um eine Nachricht aus der Warteschlange SIMPLERROUTEDB_KEYNOTFOUND zu lesen. In der Antwortnachricht wird bestätigt, dass der Wert für die Abteilung von David Brown (Mitarbeiter: 000010) ungültig ist. Folglich wird die unveränderte Eingabenachricht an die Warteschlange 'KeyNotFound' (Schlüssel nicht gefunden) weitergeleitet. Im folgenden Beispiel wird das Format einer Antwortnachricht gezeigt:
    <EmpRecord>
          	<EmpNumber>000010</EmpNumber>
          	<FirstName>DAVID</FirstName>
          	<LastName>BROWN</LastName>
          	<YrsInService>10</YrsInService>
          	<AgeInYears>54</AgeInYears>
          	<WorkDept>E00</WorkDept>
    </EmpRecord>

Zurück zum Beginn des Mustercodes