Mustercode 'Message Routing' mithilfe einer Datei ausführen
Alle in diesem Abschnitt verwendeten Testnachrichten sind im Verzeichnis
Test messages (Testnachrichten) unter dem Nachrichtenbrokerprojekt
Message routing sample message flows (Nachrichtenflüsse für den
Mustercode 'Message Routing') gespeichert.
Sollten bei der Ausführung des Mustercodes Probleme auftreten, lesen Sie den Abschnitt
Resolving problems when running samples
(Probleme beim Ausführen von Mustercodes beheben) in der WebSphere Message Broker-Dokumentation.
Mustercode ausführen
Gesamte Datei zum Weiterleiten der Nachricht verwenden
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 Mustercodes auszuführen:
- Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt
Message routing sample message flows.
Öffnen Sie File_Whole_file_message1.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
- Klicken Sie im Testclient auf In Warteschlange einreihen und
anschließend auf Nachricht senden, um eine Nachricht an die
Warteschlange ROUTING.WHOLE.FILE.IN1 zu senden.
Der Nachrichtenfluss leitet die Nachricht an die Warteschlange
'ROUTING.OUT1' weiter.
- Klicken Sie im Testclient auf Aus
Warteschlange entfernen und anschließend auf Nachricht
abrufen, um eine Nachricht aus der Warteschlange
ROUTING.OUT1 zu lesen.
- Öffnen Sie File_Whole_file_message2.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
- Klicken Sie im Testclient auf In Warteschlange einreihen und
anschließend auf Nachricht senden, um die Nachricht an die
Warteschlange ROUTING.WHOLE.FILE.IN1 zu senden.
Der
Nachrichtenfluss leitet die Nachricht an die Warteschlangen
ROUTING.OUT18 und ROUTING.OUT19 weiter.
- Klicken Sie im Testclient auf Aus Warteschlange entfernen und
anschließend auf Nachricht abrufen, um die weitergeleitete Nachricht
aus der Warteschlange ROUTING.OUT18 zu lesen.
- Klicken Sie auf das zweite Aus Warteschlange entfernen und
anschließend auf Nachricht abrufen, um die weitergeleitete Nachricht
aus der Warteschlange ROUTING.OUT19 zu lesen.
Wenn alle zuvor beschriebenen Schritte erfolgreich ausgeführt wurden, ist der erste
Teil des Mustercodes damit beendet. Schauen Sie sich den ESQL-Code im Nachrichtenfluss
Routing_using_whole_file_Compute an, wenn Sie wissen
möchten, wie die Weiterleitung programmiert ist.
Datensatz aus einer Datei zum Weiterleiten der Nachricht verwenden
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 Mustercodes auszuführen:
- Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt
Message routing sample message flows.
Öffnen Sie File_Records_file_message1.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
- Klicken Sie im Testclient auf In Warteschlange einreihen und
anschließend auf Nachricht senden, um eine Nachricht an die
Warteschlange ROUTING.RECORDS.FILE.IN1 zu senden.
Der Nachrichtenfluss leitet die Nachricht an die Warteschlange
'ROUTING.OUT1' weiter.
- Klicken Sie im Testclient auf Aus
Warteschlange entfernen und anschließend auf Nachricht
abrufen, um eine Nachricht aus der Warteschlange
ROUTING.OUT1 zu lesen.
- Öffnen Sie File_Records_file_message2.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
- Klicken Sie im Testclient auf In Warteschlange einreihen und
anschließend auf Nachricht senden, um die Nachricht an die
Warteschlange ROUTING.RECORDS.FILE.IN1 zu senden.
Der
Nachrichtenfluss leitet die Nachricht an die Warteschlangen
ROUTING.OUT18 und ROUTING.OUT19 weiter.
- Klicken Sie im Testclient auf Aus Warteschlange entfernen und
anschließend auf Nachricht abrufen, um die weitergeleitete Nachricht
aus der Warteschlange ROUTING.OUT18 zu lesen.
- Klicken Sie auf das zweite Aus Warteschlange entfernen und
anschließend auf Nachricht abrufen, um die weitergeleitete Nachricht
aus der Warteschlange ROUTING.OUT19 zu lesen.
Wenn alle vorherigen Schritte erfolgreich ausgeführt wurden, ist der zweite Teil des Mustercodes
beendet.
Zwischengespeicherte Version der Datei zum Weiterleiten der Nachricht verwenden
In diesem Teil des Mustercodes wird der Nachrichtenfluss 'Routing_using_file_and_memory_cache'
verwendet.
Der Nachrichtenfluss enthält zwei Eingabewarteschlangen:
- ROUTING.FILE.MEMORY.IN1.
- ROUTING.FILE.REFRESH.IN1.
Gehen Sie folgendermaßen vor, um diesen
Teil des Mustercodes auszuführen:
- Erweitern Sie in der Ansicht 'Brokerentwicklung' das Projekt
Message routing sample message flows.
Öffnen Sie File_Memory_cache_message1.mbtest in einem Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
- Klicken Sie im Testclient auf In Warteschlange einreihen und
anschließend auf Nachricht senden, um eine Nachricht an die
Warteschlange ROUTING.FILE.MEMORY.IN1 zu senden.
Der Nachrichtenfluss leitet die Nachricht an die Warteschlange
'ROUTING.OUT1' weiter.
- Klicken Sie im Testclient auf Aus
Warteschlange entfernen und anschließend auf Nachricht
abrufen, um eine Nachricht aus der Warteschlange
ROUTING.OUT1 zu lesen.
- Öffnen Sie File_Memory_cache_message2.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
- Klicken Sie im Testclient auf In Warteschlange einreihen und
anschließend auf Nachricht senden, um die Nachricht an die
Warteschlange ROUTING.FILE.MEMORY.IN1 zu senden. Der Nachrichtenfluss
leitet die Nachricht an die Warteschlangen ROUTING.OUT18 und
ROUTING.OUT19 weiter.
- Klicken Sie im Testclient auf Aus Warteschlange entfernen und
anschließend auf Nachricht abrufen, um die weitergeleitete Nachricht
aus der Warteschlange ROUTING.OUT18 zu lesen.
- Klicken Sie auf das zweite Aus Warteschlange entfernen und
anschließend auf Nachricht abrufen, um die weitergeleitete Nachricht
aus der Warteschlange ROUTING.OUT19 zu lesen.
- Bis zu diesem Punkt zeigt der Nachrichtenfluss genau dasselbe Verhalten wie der
Nachrichtenfluss im ersten Teil des Mustercodes, nur dass dieser Nachrichtenfluss Informationen
verwendet, die aus der Datei zwischengespeichert werden.
Um die Auswirkungen bei Verwendung des
Caches zu verdeutlichen, wird die Datei geändert, um zu zeigen, wie der Speichercache aktualisiert
werden kann. Gehen Sie folgendermaßen vor, um die Datei zu ändern:
- Gehen Sie zum MQSI_FILENODES_ROOT_DIRECTORY-Verzeichnis c:\MQSIFileRead.
- Öffnen Sie die Datei fileRead.csv.
- Ändern Sie die Zeile KA,Braithwaite,MB8QMGR,ROUTING.OUT18,MB8QMGR,ROUTING.OUT19 in KA,Braithwaite,MB8QMGR,ROUTING.OUT17,MB8QMGR,ROUTING.OUT19.
- Speichern Sie die Datei.
- Öffnen Sie File_Memory_cache_message2.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
- Klicken Sie im Testclient auf In Warteschlange einreihen und
anschließend auf Nachricht senden, um eine Nachricht an die
Warteschlange ROUTING.FILE.MEMORY.IN1 zu senden.
Der Nachrichtenfluss
leitet die Nachricht an die Warteschlangen ROUTING.OUT18 und
ROUTING.OUT19 weiter.
- Klicken Sie im Testclient auf Aus Warteschlange entfernen und
anschließend auf Nachricht abrufen, um eine Nachricht aus der
Warteschlange ROUTING.OUT18 zu lesen.
Wiederholen Sie dies für die
zweite Entfernung aus einer Warteschlange.
Die Nachricht wird nicht an den neuen
Warteschlangennamen weitergeleitet, weil die Datei noch nicht erneut gelesen wurde.
- Damit die Datei im Nachrichtenfluss erneut gelesen wird, öffnen Sie unter Testnachrichten dieDatei File_Refresh_cache_message1.mbtest und klicken Sie auf In Warteschlange einreihen und anschließend auf Nachricht senden, um die Nachricht erneut in die Warteschlange ROUTING.FILE.REFRESH.IN1 zu schreiben.
- Doppelklicken Sie auf File_Memory_cache_message2.mbtest, um die
Datei im Testclient zu öffnen, klicken Sie auf In Warteschlange
einreihen und anschließend auf Nachricht senden, um die
Nachricht in die Warteschlange ROUTING.FILE.MEMORY.IN1 zu schreiben.
- Klicken Sie im Testclient auf das erste Aus Warteschlange
entfernen und ändern Sie den Namen der Warteschlange in
ROUTING.OUT17; klicken Sie dann auf Nachricht
abrufen, um die weitergeleitete Nachricht aus der Warteschlange
ROUTING.OUT17 zu lesen.
Die Schritte 9 bis 14 können wiederholt werden, wobei für das Attribut 'queue_name' in der Datei
jeweils einer der anderen verfügbaren Warteschlangennamen angegeben wird. Statt die Nachricht
File_Refresh_cache_message1 zu senden, können Sie auch den
Nachrichtenfluss stoppen und erneut starten, was ebenfalls dazu führt, dass die
zwischengespeicherte Datenbanktabelle aktualisiert wird.
Wenn alle vorherigen Schritte erfolgreich ausgeführt wurden, ist der zweite Teil des Mustercodes
beendet. Schauen Sie sich den ESQL-Code im Nachrichtenfluss an, wenn Sie wissen möchten, wie die
Weiterleitung programmiert ist:
Routing_using_file_and_memory_cache_Compute.
Erläuterung der Ergebnisse
Der Mustercode 'Message Routing' leitet die Eingabetestnachricht an verschiedene
Ausgabewarteschlangen weiter, ohne die Ausgabe zu verändern.
Die Ausgabenachricht ist mit
der Eingabetestnachricht identisch (siehe Eingabetestnachricht).
In den in den vier Teilen beschriebenen Schritten wird genau gesagt, wohin die Nachrichten
weitergeleitet werden.
Mithilfe des WebSphere MQ-Explorer sowie der Funktion 'Aus Warteschlange
entfernen' im Testclient kann überprüft werden, ob die Nachrichten an die richtigen Warteschlangen
weitergeleitet werden.
Zurück zum Beginn des Mustercodes