Beispiel 4: MDB automatisch stoppen, wenn kein Ausnahmeziel angegeben ist

Als Vorbereitung auf die Nichtverfügbarkeit einer Systemressource oder eine Problemnachricht konfigurieren Sie das System so, dass die MDB automatisch gestoppt wird. Damit die Nachrichtenreihenfolge bewahrt wird, verwenden Sie kein Ausnahmeziel.

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, darf kein Ausnahmeziel verwenden, d. h., es darf keine Ausnahmeziel für das Warteschlangen- bzw. Topicbereichsziel konfiguriert sein.

Zum Ausführen dieser Task benötigen Sie die folgenden Informationen:
  • Unternehmensanwendung, die die MDB enthält
  • Abhängige externe Systemressourcen
  • 1 als Wert für Schwellenwert für aufeinanderfolgende Nachrichtenfehler. Dies ist die maximal zulässige Anzahl aufeinanderfolgender Fehler bei der Nachrichtenzustellung, nach der die MDB gestoppt wird. Diese Eigenschaft gilt für Nachrichtensätze.
    Anmerkung: Wenn Sie diese Eigenschaft auf einen Wert größer als 1 setzen, setzt das System den Wert automatisch auf 1 zurück, wenn kein Ausnahmeziel konfiguriert ist.
  • 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, wieder für die Zustellung an die MDB verfügbar ist. 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.
  • Ein gültiger Wert für die Eigenschaft Maximale Anzahl fehlgeschlagener Zustellungen pro Nachricht, d. h. die maximale Anzahl fehlgeschlagener Versuche, eine Nachricht zu verarbeiten. Diese Eigenschaft gilt für einzelne Nachrichten.

Die JCA-MBean gibt JMX-Benachrichtigungen aus, um anzuzeigen, dass die Ausführung der MDB angehalten bzw. fortgesetzt wurde. Sie können einen Nachrichtenlistener in der JCA-MBean registrieren, um JMX-Benachrichtigungen zu erhalten.

Informationen zu diesem Vorgang

In diesem Szenario ist die Unternehmensanwendung ein kontinuierlich aktives System, das eine implementierte MDB verwendet, um auf eine externe Systemressource zuzugreifen.

Wenn eine Problemnachricht (msg1 in diesem Szenario) auftritt, wird sie in die Warteschlange zurückgestellt.

Anstatt msg1 der MDB sofort zur Verfügung zu stellen, wird sie für einen Zeitraum (in diesem Szenario ein Wiederholungsintervall von fünf Sekunden), der mit der Eigenschaft Verzögerung zwischen Wiederholungen fehlerhafter Nachrichten festgelegt wurde, 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. In diesem Szenario wird dieser Schwellenwert erreicht, sobald msg1 verborgen wird.

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.

Dieser Prozess wird so oft wiederholt, bis msg1 den mit Maximale Anzahl fehlgeschlagener Zustellungen pro Nachricht festgelegten Grenzwert erreicht (fünf in diesem Szenario).

Sobald msg1 das vierte Mal nicht mehr verborgen, rückgängig gemacht und erneut verborgen wurde, ist der mit Schwellenwert für aufeinanderfolgende Nachrichtenfehler festgelegte Grenzwert erreicht 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.

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 1 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. Wählen Sie unter Ausnahmeziel die Option Ohne aus.
  8. Geben Sie den Wert 5 im Feld Maximale Anzahl fehlgeschlagener Zustellungen pro Nachricht ein.
  9. Speichern Sie Ihre Änderungen in der Masterkonfiguration.
  10. 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, verbleibt msg1 in der Warteschlange, da kein Ausnahmeziel konfiguriert ist. Es werden keine anderen Nachrichten verarbeitet.
  11. Wenn Sie die Ausführung der MDB fortsetzen, aber das Problem bezüglich der fehlgeschlagenen Nachrichtenzustellung erneut auftritt, wird der Grenzwert für die maximale Anzahl fehlgeschlagener Zustellungen bei der ersten Wiederholung der Nachricht erreicht. Da aber kein Ausnahmeziel konfiguriert ist, wird die Nachricht nicht in eine andere Warteschlange verschoben. Stattdessen wird der gesamte Warteschlangenpunkt für die Dauer des mit der Eigenschaft Verzögerung zwischen Wiederholungen fehlerhafter Nachrichten festgelegten Wiederholungsintervalls (five Sekunden in diesem Szenario) für alle Konsumenten blockiert. Nach Ablauf dieses Zeitraums beginnen die Konsumenten wieder mit dem Konsum. Wenn die fehlerhafte Nachricht immer noch vorhanden ist und ihre Zustellung erneut scheitert, wird der Warteschlangenpunkt erneut für 5 Sekunden blockiert. Dieser Prozess wird so lange fortgesetzt, bis Sie die fehlerhafte Nachricht aus der Warteschlange entfernen, indem Sie sie manuell löschen oder das zugrunde liegende Problem beheben. Erst danach kann die konsumierende Anwendung ihre Verarbeitung erfolgreich fortsetzen.
  12. 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 zu verwenden ist. 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 und dabei die Nachrichtenreihenfolge bewahrt.

Nächste Schritte

Wenn die Ausführung der MDB fortgesetzt wird, gibt die JCA-MBean eine JMX-Benachrichtigung aus, um anzuzeigen, dass die die Ausführung der MDB fortgesetzt wurde. 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_Ex4
Dateiname:tjn_mdb_0001_Ex4.html