Beispiel 2: MDB automatisch stoppen, wenn eine Systemressource nicht verfügbar ist

Als Vorbereitung auf die Nichtverfügbarkeit einer Systemressource konfigurieren Sie das System so, dass die MDB nach wenigen Nachrichtenfehlern automatisch gestoppt wird und Sie über das Problem benachrichtigt werden.

Vorbereitende Schritte

In dieser Task wird vorausgesetzt, dass Sie eine Unternehmensanwendung implementiert haben, die eine MDB enthält, die mit externen Systemressourcen interagiert.

Das Ziel, an dem die MDB empfangsbereit ist, muss ein Ausnahmeziel verwenden. Dieses Ausnahmeziel kann das Systemstandardausnahmeziel oder ein speziell für das Ziel konfiguriertes Ausnahmeziel sein.

Zum Ausführen dieser Task sind die folgenden Informationen erforderlich:
  • die Unternehmensanwendung, die die MDB enthält
  • die abhängigen externen Systemressourcen
  • der Wert 3 für Schwellenwert für aufeinanderfolgende Nachrichtenfehler. Dies ist die maximal zulässige Anzahl aufeinanderfolgender Fehler bei der Nachrichtenzustellung. Danach wird die MDB gestoppt. Diese Eigenschaft gilt für Nachrichtensätze.
  • der Wert 5000 für Verzögerung zwischen Wiederholungen fehlerhafter Nachrichten, d. h. für die Zeit in Millisekunden, nach deren Ablauf eine Nachricht, deren Zustellung fehlgeschlagen ist, erneut an die MDB übermittelt werden kann. In dieser Zeit können weitere Nachrichten zugestellt werden, sofern Schwellenwert für aufeinanderfolgende Nachrichtenfehler und die maximale Parallelität nicht auf 1 gesetzt sind.
  • der Wert 5 für Maximale Anzahl fehlgeschlagener Zustellungen pro Nachricht, d. h. für die maximal zulässige Anzahl fehlgeschlagener Versuche, eine Nachricht zu verarbeiten. Danach wird die Nachricht vom geplanten Ziel an das Ausnahmeziel weitergeleitet. Diese Eigenschaft gilt für einzelne Nachrichten.

Informationen zu diesem Vorgang

In diesem Szenario ist die Unternehmens- bzw. Geschäftsanwendung ein kontinuierlich aktives System, das eine implementierte MDB verwendet, um auf eine externe Systemressource zuzugreifen.

Wenn bei dieser Ressource ein Problem auftritt und die Ressource nicht mehr verfügbar ist, kann die implementierte MDB nicht auf diese Ressource zugreifen. Deshalb wird die der MDB zugeordnete Transaktion rückgängig gemacht, und die Nachricht "msg1" wird in die Warteschlange zurückgestellt.

Die Nachricht "msg1" wird während des Wiederholungsintervalls (fünf Sekunden), das mit Verzögerung zwischen Wiederholungen fehlerhafter Nachrichten definiert wurde, verborgen, bevor sie an die MDB übermittelt wird.

In der Zwischenzeit verarbeitet die MDB die nächste Nachricht in der Warteschlange, die Nachricht "msg2". Die externe Ressource ist weiterhin nicht verfügbar. Deshalb schlägt die Verarbeitung dieser Nachricht ebenfalls fehl. Die Nachrichtentransaktion wird rückgängig gemacht, und die Nachricht wird fünf Sekunden lang verborgen. Die nächste Nachricht in der Warteschlange, Nachricht "msg3" wird verarbeitet. Die Verarbeitung schlägt fehl, und die Nachricht wird ebenfalls verborgen.

Wenn die Anzahl verborgener Nachrichten den mit der Eigenschaft Schwellenwert für aufeinanderfolgende Nachrichtenfehler festgelegten Wert erreicht, verarbeitet die MDB so lange keine weiteren Nachrichten, bis eine der verborgenen Nachrichten wieder verfügbar ist.

Wenn der mit Verzögerung zwischen Wiederholungen fehlerhafter Nachrichten festgelegte Zeitraum für msg1 abläuft, wird msg1 wieder sichtbar und kann erneut verarbeitet werden. Da die Ressource weiterhin nicht verfügbar ist, wird die Nachricht erneut verborgen. Dasselbe geschieht mit den Nachrichten "msg2" und "msg3".

Eine Nachricht wird dann als gescheitert betrachtet, wenn die Anzahl der Rollback-Transaktionen für diese Nachricht dem mit Maximale Anzahl fehlgeschlagener Zustellungen pro Nachricht festgelegten Grenzwert minus eins entspricht (in diesem Szenario fünfmal). Sobald msg1 zum vierten Mal sichtbar, rückgängig gemacht und wieder verborgen wurde, wird die Anzahl aufeinanderfolgender Fehler um eins erhöht. Dann wird msg2 wieder sichtbar, rückgängig gemacht und erneut verborgen. Dasselbe geschieht mit msg3. Die Anzahl aufeinander folgender Fehler erreicht den für Schwellenwert für aufeinanderfolgende Nachrichtenfehler festgelegten Wert, und die MDB wird automatisch gestoppt. Eine JCA-MBean gibt eine JMX-Benachrichtigung aus, und der Systemadministrator wird über einen Protokolleintrag benachrichtigt, dass die MDB gestoppt wurde.

Anmerkung: In diesem Szenario wird die MDB automatisch gestoppt, wenn die Systemressource ungefähr 20 Sekunden nicht verfügbar ist. Wenn die Systemressource weniger als 20 Sekunden nicht verfügbar ist und die Anzahl aufeinander folgender Fehler den mit Schwellenwert für aufeinanderfolgende Nachrichtenfehler definierten Wert nicht erreicht, werden die Nachrichten bei einer der Wiederholungen erfolgreich verarbeitet. Die Ausführung des Systems wird ohne manuelle Eingriffe und ohne das Senden von Nachrichten an das Ausnahmeziel normal fortgesetzt.

Vorgehensweise

  1. Navigieren Sie zur implementierten Unternehmensanwendung, die die MDB enthält.
  2. Navigieren Sie von der MDB aus zu der zugehörigen JMS-Aktivierungsspezifikation. Klicken Sie auf Ressourcen -> JMS -> Aktivierungsspezifikationen -> Name_der_Aktivierungsspezifikation.
  3. Geben Sie den Wert 3 für Schwellenwert für aufeinanderfolgende Nachrichtenfehler ein.
  4. Geben Sie den Wert 5000 für Verzögerung zwischen Wiederholungen fehlerhafter Nachrichten ein.
  5. Speichern Sie die Konfiguration.
  6. Navigieren Sie zum Ziel, für das die MDB empfangsbereit ist. Klicken Sie auf einen der folgenden Pfade:
    • Serviceintegration -> Busse -> Busname -> [Zielressourcen] Ziele -> Name_der_Warteschlange
    • Serviceintegration -> Busse -> Busname -> [Zielressourcen] Ziele -> Name_des_Topicbereichs
  7. Geben Sie den Wert 5 für Maximale Anzahl fehlgeschlagener Zustellungen pro Nachricht ein.
  8. Speichern Sie Ihre Änderungen in der Masterkonfiguration.
  9. Wenn Sie eine JMX-Benachrichtigung und einen Protokolleintrag empfangen, der anzeigt, dass die MDB (oder der Endpunkt) angehalten wurde, untersuchen Sie das Problem, das bei der von der MDB verwendeten Systemressource aufgetreten ist. Während die MDB angehalten ist, werden keine Nachrichten an das Ausnahmeziel gesendet, und es erscheinen keine Fehlernachrichten in der Konsole, die sich auf die gestoppte Datenbank beziehen.
  10. Wenn die ausgefallene Systemressource wieder verfügbar ist, starten Sie sie erneut.
  11. Melden Sie sich erneut an der Administrationskonsole an, navigieren Sie zu derselben Unternehmensanwendung, und klicken Sie dann in der Verwaltungsanzeige für die MDB auf Fortsetzen. Sie können die Ausführung der MDB auch über Scripting und unter Verwendung der JCA-MBean fortsetzen. Die erste JMX-Benachrichtigung und der erste Protokolleintrag zeigen an, welche MBean für die Fortsetzung der MDB verwendet werden soll. Es werden wieder am Ziel befindliche Nachrichten an die MDB gesendet.

Ergebnisse

Sie haben das System so konfiguriert, dass es sich selbst vor Ausfällen externer Systemressourcen schützt.

Nächste Schritte

Wenn die Ausführung der MDB fortgesetzt wird, gibt die JCA-MBean eine entsprechende JMX-Benachrichtigung aus. Nachrichten in der Warteschlange werden konsumiert, fehlgeschlagene Nachrichtenzustellungen werden wiederholt, und die Transaktion wird festgeschrieben.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjn_mdb_0001_Ex2
Dateiname:tjn_mdb_0001_Ex2.html