Mustercode 'Timeout Processing' ausführen

Der Mustercode 'Timeout Processing' besteht aus zwei Teilen, die getrennt ausgeführt werden:

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.

Automatische Verarbeitung der Zeitlimitüberschreitung

Nachdem der Nachrichtenfluss 'AutomaticTimeout' eingesetzt wurde, müssen Sie nichts weiter zu dessen Ausführung tun - er wird automatisch ausgeführt. Während der Broker ausgeführt wird, werden die Nachrichten im Abstand von zehn Sekunden in der Warteschlange 'TIMEOUT_SAMPLE_OUT_1' angezeigt.

Gesteuerte Verarbeitung der Zeitlimitüberschreitung

Nachdem der Nachrichtenfluss 'ControlledTimeout' implementiert wurde, muss er mithilfe der Beispielnachrichten ausgeführt werden:
  1. Erweitern Sie in der Ansicht 'Brokerentwicklung' das Nachrichtenflussprojekt für Zeitlimitüberschreitungen (Timeout).
  2. Klicken Sie doppelt auf SetTenTimeout.mbtest, um die Datei im Testclient zu öffnen.
  3. Klicken Sie im Testclient auf In Warteschlange einreihen.
  4. Klicken Sie auf Nachricht senden. Es wird eine Anforderungsnachricht an die Warteschlange 'TIMEOUT_SAMPLE_IN_1' gesendet und anschließend werden zehn Kopien der ursprünglichen Nachricht im Abstand von zehn Sekunden in der Warteschlange 'TIMEOUT_SAMPLE_OUT_2' angezeigt.

Wenn der Test abgeschlossen ist, wiederholen Sie den Vorgang mit der Datei SetUnlimitedTimeout.mbtest. Dadurch wird eine Nachricht mit der Anforderung auf ein uneingeschränktes (unbegrenztes) Zeitlimit an die Warteschlange 'TIMEOUT_SAMPLE_IN_2' gesendet und anschließend werden Kopien der ursprünglichen Nachricht im Abstand von zehn Sekunden in der Warteschlange 'TIMEOUT_SAMPLE_OUT_2' angezeigt. Die Ausgabenachrichten enthalten ein Fragment (den ersten Datensatz vom Typ 'Invoice') der ursprünglichen Eingabenachricht.

Die Anforderung auf ein uneingeschränktes Zeitlimit wird so lange ausgeführt, bis sie aktiv beendet wird. Sie können Sie mit einer entsprechenden Abbruchanforderung beenden:

  1. Klicken Sie doppelt auf CancelUnlimitedTimeout.mbtest, um die Datei im Testclient zu öffnen. Die Datei enthält nur eine Abbruchanforderung für die Anforderung auf ein uneingeschränktes Zeitlimit in der Datei SetUnlimitedTimeout.mbtest.
  2. Klicken Sie auf Nachricht senden. Es werden keine weiteren Nachrichten in der Warteschlange 'TIMEOUT_SAMPLE_OUT_2' angezeigt.

Sie können die Anforderung auf ein auf zehn Nachrichtenkopien eingeschränktes Zeitlimit auf dieselbe Weise mit der Datei CancelTenTimeout.mbtest beenden.

Sie können das eingeschränkte und uneingeschränkte Zeitlimit zusammen ausführen, indem Sie beide Nachrichten kurz hintereinander im Nachrichtenfluss ausführen. Der Knoten für die gesteuerte Verarbeitung (Controlled) verarbeitet die Nachrichten in der Reihenfolge ihrer Ausführung, sodass die Ausgabenachrichten in der Warteschlange 'TIMEOUT_SAMPLE_OUT_2' gemischt sind. Sie können nicht zwei Instanzen derselben Zeitlimitanforderung zusammen ausführen, weil die zweite einen Fehler im TimeoutControl-Knoten auslöst, da die vorhandene Anforderung nicht überschrieben wird. Dies ist keine Einschränkung der Zeitlimitknoten im Allgemeinen, sondern nur eine Einschränkung in diesem Mustercode, da die Zeitlimitanforderungen in den Dateien mit der Erweiterung .mbtest fest codierte Kennungen haben.

Erfolg überprüfen

Der Erfolg wird durch den Eingang von Nachrichten in den Warteschlangen 'TIMEOUT_SAMPLE_OUT_1' und 'TIMEOUT_SAMPLE_OUT_2' bestimmt. Die erste Warteschlange enthält die Nachrichten aus dem Nachrichtenfluss 'AutomaticTimeout', die im Abstand von zehn Sekunden so lange eingehen, wie der Nachrichtenfluss ausgeführt wird. Die zweite Warteschlange enthält die Nachrichten aus dem Nachrichtenfluss 'ControlledTimeout', die in Gruppen mit einem Abstand von jeweils zehn Sekunden eingehen und von der Reihenfolge und dem Zeitpunkt für den Aufruf der Anforderung abhängen.

So zeigen Sie die Nachrichten in der Warteschlange TIMEOUT_SAMPLE_OUT_1 an:

  1. Klicken Sie doppelt auf TIMEOUT_SAMPLE_OUT_1.mbtest, um die Datei im Testclient zu öffnen.
  2. Klicken Sie auf Nachricht abrufen, um die Nachricht aus der Warteschlange TIMEOUT_SAMPLE_OUT_1 zu lesen.

Die Nachrichten in der Warteschlange werden automatisch generiert und sehen wie die nachfolgende Nachricht aus:

<TimeoutRequest>
 <Action>SET</Action>
 <Identifier>SampleAuto</Identifier>
 <StartDate>2007-08-31</StartDate>
 <StartTime>13:04:12.295</StartTime>
 <Count>3</Count>
 <Interval>10</Interval>
 <IgnoreMissed>true</IgnoreMissed>
 <AllowOverwrite>true</AllowOverwrite>
</TimeoutRequest>

So zeigen Sie die Nachrichten in der Warteschlange TIMEOUT_SAMPLE_OUT_2 an:

  1. Klicken Sie doppelt auf TIMEOUT_SAMPLE_OUT_2.mbtest, um die Datei im Testclient zu öffnen.
  2. Klicken Sie auf Nachricht abrufen, um eine Nachricht aus der Warteschlange TIMEOUT_SAMPLE_OUT_2 zu lesen.

Die Nachrichten in der Warteschlange TIMEOUT_SAMPLE_OUT_2 enthalten entweder die gesamte Eingabenachricht oder einen Teil davon.

Zurück zum Beginn des Mustercodes