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:

  1. 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.
  2. 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.
  3. Klicken Sie im Testclient auf Aus Warteschlange entfernen und anschließend auf Nachricht abrufen, um eine Nachricht aus der Warteschlange ROUTING.OUT1 zu lesen.
  4. Öffnen Sie File_Whole_file_message2.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
  5. 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.
  6. 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.
  7. 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:

  1. 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.
  2. 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.
  3. Klicken Sie im Testclient auf Aus Warteschlange entfernen und anschließend auf Nachricht abrufen, um eine Nachricht aus der Warteschlange ROUTING.OUT1 zu lesen.
  4. Öffnen Sie File_Records_file_message2.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
  5. 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.
  6. 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.
  7. 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:

  1. ROUTING.FILE.MEMORY.IN1.
  2. ROUTING.FILE.REFRESH.IN1.

Gehen Sie folgendermaßen vor, um diesen Teil des Mustercodes auszuführen:

  1. 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.
  2. 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.
  3. Klicken Sie im Testclient auf Aus Warteschlange entfernen und anschließend auf Nachricht abrufen, um eine Nachricht aus der Warteschlange ROUTING.OUT1 zu lesen.
  4. Öffnen Sie File_Memory_cache_message2.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
  5. 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.
  6. 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.
  7. 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.
  8. 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:
    1. Gehen Sie zum MQSI_FILENODES_ROOT_DIRECTORY-Verzeichnis c:\MQSIFileRead.
    2. Öffnen Sie die Datei fileRead.csv.
    3. Ändern Sie die Zeile KA,Braithwaite,MB8QMGR,ROUTING.OUT18,MB8QMGR,ROUTING.OUT19 in KA,Braithwaite,MB8QMGR,ROUTING.OUT17,MB8QMGR,ROUTING.OUT19.
    4. Speichern Sie die Datei.
  9. Öffnen Sie File_Memory_cache_message2.mbtest im Testclient, indem Sie unter Testnachrichten doppelt auf die Datei klicken.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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