Das Ausführen des Beispielprogramms 'Nachrichtenrouting' kann in zwei Hauptteile unterteilt werden:
Die beiden Teile werden einzeln beschrieben. Alle in diesem Abschnitt erwähnten Testnachrichten finden Sie im Verzeichnis 'Test messages' (Testnachrichten) unter dem Nachrichtenflussprojekt 'Message routing sample message flows' (Nachrichtenflüsse für das Beispielprogramm 'Nachrichtenrouting').
Alle Testnachrichten, die beim Ausführen dieses Beispielprogramms verwendet werden, basieren auf folgendem Format:
<SaleEnvelope> <Header> <SaleListCount>1</SaleListCount> </Header> <SaleList> <Invoice> <Initial>T</Initial> <Initial>D</Initial> <Surname>Montana</Surname> <Item><Code>00</Code> <Code>01</Code><Code>02</Code> <Description>Twister</Description> <Category>Games</Category> <Price>00.30</Price> <Quantity>01</Quantity> </Item> <Item> <Code>02</Code><Code>03</Code><Code>01</Code> <Description>The Times Newspaper</Description> <Category>Books and Media</Category> <Price>00.20</Price> <Quantity>01</Quantity> </Item> <Balance>00.50</Balance> <Currency>Sterling</Currency> </Invoice> </SaleList> <Trailer> <CompletionTime>12.00.00</CompletionTime> </Trailer> </SaleEnvelope>
Die Felder '<Initial>' und '<Surname>' werden für die Weiterleitung der Nachricht verwendet.
Für diesen Teil des Beispielprogramms wird der Nachrichtenfluss 'Routing_using_database_table' verwendet. Er enthält eine Eingabewarteschlange: 'ROUTING.DATABASE.IN1'. Der Nachrichtenfluss kann die Nachricht an eine von 20 Ausgabewarteschlangen weiterleiten, je nachdem, was in der Nachricht angegeben ist ('ROUTING.OUT' gefolgt von einer Zahl zwischen 1 und 19 oder die Warteschlange 'ROUTING.DEFAULT'). Gehen Sie folgendermaßen vor, um diesen Teil des Beispielprogramms auszuführen:
Wenn alle zuvor beschriebenen Schritte erfolgreich ausgeführt wurden, ist der erste Teil des Beispielprogramms damit beendet. Sie können den ESQL-Code im Nachrichtenfluss Routing_using_database_table anzeigen, um nachzuvollziehen, wie die Weiterleitung ausgeführt wurde.
Für diesen Teil des Beispielprogramms wird der Nachrichtenfluss 'Routing_using_memory_cache' verwendet. Der Nachrichtenfluss enthält die beiden Eingabewarteschlangen 'ROUTING.MEMORY.IN1' und 'ROUTING.REFRESH.IN1' und kann die Nachricht an eine von 20 Ausgabewarteschlangen weiterleiten, je nachdem, was in der Nachricht angegeben ist ('ROUTING.OUT' gefolgt von einer Zahl zwischen 1 und 19 oder die Warteschlange 'ROUTING.DEFAULT'). Die Weiterleitungslogik ist mit der Logik bei Verwendung der nicht zwischengespeicherten Version identisch. Der einzige Unterschied besteht darin, dass die Datenbank unter Verwendung gemeinsamer Variablen gespeichert wird. Führen Sie folgende Schritte aus, um diesen Teil des Beispielprogramms auszuführen:
DB2
db2cmd
DB2> connect to ROUTING user Benutzer using Kennwort
Dabei ist Benutzer ein Benutzer mit Zugriffsberechtigung für die ROUTING-Datenbank. Dabei handelt es
sich normalerweise um denselben Benutzer, der auch beim Erstellen des Beispielbrokers verwendet wurde. Kennwort steht für das Kennwort dieses Benutzers.
DB2> update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite'
Derby
ij>update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite';
Die Schritte 5 bis 10 können wiederholt werden, wobei für das Attribut 'queue_name' in der Datenbank jeweils einer der anderen verfügbaren Warteschlangennamen angegeben wird. Es muss nicht unbedingt die Nachricht 'Refresh_cache_message1' verwendet zu werden. Stattdessen kann auch der Nachrichtenfluss gestoppt und erneut gestartet werden. Auch auf diese Weise wird die zwischengespeicherte Datenbanktabelle aktualisiert.
Wenn alle zuvor beschriebenen Schritte erfolgreich ausgeführt wurden, ist das Beispielprogramm damit beendet. Sie können den ESQL-Code im Nachrichtenfluss Routing_using_memory_cache anzeigen, um nachzuvollziehen, wie das Speichern der Datenbank mit Hilfe gemeinsamer Variablen ausgeführt wurde.
Das Beispielprogramm 'Nachrichtenrouting' leitet die Eingabetestnachricht an verschiedene Ausgabewarteschlangen weiter, ohne die Ausgabe zu verändern. Die Ausgabenachricht ist mit der Eingabetestnachricht identisch. In den für beide Teile angegebenen Schritten werden die Zielwarteschlangen für die Nachrichtenweiterleitung festgelegt. Mit Hilfe des WebSphere MQ-Explorer kann (wie zuvor in der Anleitung beschrieben) kann überprüft werden, ob die Nachrichten an die richtigen Warteschlangen weitergeleitet wurden. Darüber hinaus kann der Inhalt der Nachrichten in den Warteschlangen überprüft werden. Dazu wird das Programm zum Entfernen von Nachrichten aus Warteschlangen verwendet, das zum Message Brokers Toolkit gehört. Um das Programm zum Entfernen von Nachrichten aus Warteschlangen aufzurufen, klicken Sie in der Toolkit-Funktionsleiste auf das entsprechende Symbol: