Strikte Nachrichtenreihenfolge mit Aktivierungsspezifikationen oder ASF-Listener-Ports, die mit WebSphere MQ Version 7.x verbunden sind

Eine strikte Nachrichtenreihenfolge kann erreicht werden, wenn MDB-Anwendungen im WebSphere MQ-Messaging-Provider implementiert werden, falls in der Anwendung keine besonderen Funktionen zur Bearbeitung ungeordnet eingehender Nachrichten codiert wurden.

In WebSphere Application Server Version 7 und höher sind Listener-Ports stabilisiert. Weitere Informationen finden Sie im Artikel zu den stabilisierten Features. Deshalb sollten Sie die Migration Ihrer WebSphere MQ-MDB-Implementierungskonfigurationen von Listener-Ports auf Aktivierungsspezifikationen planen. [AIX Solaris HP-UX Linux Windows][IBM i]Weitere Informationen zum Konfigurieren der Aktivierungsspezifikationen für Nicht-ASF-Modus finden Sie unter Aktivierungsspezifikation für Nicht-ASF-Modus konfigurieren. Sie sollten die Migration jedoch erst dann durchführen, wenn Sie sicher sind, dass die Anwendung nicht in Anwendungsservern einer früheren Version als WebSphere Application Server Version 7 ausgeführt werden muss. Wenn beispielsweise in einem Anwendungs-Server-Cluster einige Member Version 6.1 und andere Member eine höhere Version haben, sollten Sie Anwendungen in diesem Cluster erst dann auf die Verwendung von Aktivierungsspezifikationen migrieren, wenn Sie alle Anwendungsserver im Cluster auf die höhere Version migriert haben.

Für dieses Szenario gelten folgende Voraussetzungen:
  • Die MDB-Anwendung ist transaktionsorientiert.
  • Der Rücksetzschwellenwert (BOTHRESH) in der WebSphere MQ-Warteschlange wurde auf 0 gesetzt.
  • Sie verwenden WebSphere MQ Version 7.0 oder höher.

Konfiguration von WebSphere Application Server für geordnete Übermittlung

  • Der WebSphere MQ-Warteschlangenmanager muss in WebSphere MQ Version 7.0 oder höher ausgeführt werden.
  • Die Verbindung zum Warteschlangenmanager muss den normalen Modus des WebSphere MQ-Messaging-Providers verwenden. Lesen Sie dazu den Artikel Rules for selecting the WebSphere MQ messaging provider mode im Information Center von WebSphere MQ.
  • Wenn Sie Listener-Ports verwenden, muss der Wert Maximale Anzahl Sitzungen für die Listener-Ports in WebSphere Application Server auf 1 gesetzt sein.
  • Wenn Sie Aktivierungsspezifikationen verwenden, muss der Wert Maximale Anzahl Sitzungen für die Aktivierungsspezifikationen in WebSphere Application Server auf 1 gesetzt sein.

Wichtige Informationen zu dieser Konfiguration

  • ASF-Listener-Ports und Aktivierungsspezifikationen von WebSphere MQ enthalten zwei eigenständige Komponenten, die zusammen die Nachrichtenübermittlung realisieren. Diese zwei Komponenten werden vom Warteschlangenmanager als eigenständige Anwendungen betrachtet:
    • Eine Komponente erkennt die Nachrichten, wenn sie eingehen, konsumiert sie jedoch nicht. Stattdessen teilt sie sie der zweiten Komponente zu.
    • Die andere Komponente ist ein Serversitzungspool, der einen Thread zuordnet, um die Nachricht innerhalb der Anwendungstransaktion zuzuordnen und an die Methode onMessage() der MDB zu übermitteln.
  • Ab Version 7.0 stellt WebSphere MQ stellt ein Push-Modell für die Nachrichtenerkennung bereit, das effizienter ist als das in älteren Versionen von WebSphere MQ verwendete Abfragemodell, und ermöglicht unter normalen Betriebsbedingungen eine bessere Ordnung der Nachrichten nach Reihenfolge.

Bedingungen, unter denen Nachrichten ungeordnet übermittelt werden können

Nachrichten können bei dieser Konfiguration unter folgenden Bedingungen ungeordnet übermittelt werden:

  • Nach einem Rollback der Transaktion kann die nächste verfügbare Nachricht in der Warteschlange zugestellt werden, bevor die zurückgegebene Nachricht neu zugestellt wird:
    • Wenn Sie die Einstellung Maximale Anzahl Wiederholungen für einen ASF-Listener-Port auf null setzen, wird die Zustellung von Nachrichten außerhalb der Reihenfolge nach einem Rollback verhindert, indem der Listener-Port bei einem Rollback gestoppt wird. Der Listener-Port muss jedoch manuell erneut gestartet werden.
    • Wenn Sie für eine Aktivierungsspezifikation Endpunkt stoppen, wenn Nachrichtenzustellung scheitert auswählen und Anzahl sequenzieller Zustellungsfehler vor dem Aussetzen des Endpunkts auf 0 setzen, wird die Zustellung von Nachrichten außerhalb der Reihenfolge nach einem Rollback verhindert, indem der Nachrichtenendpunkt bei einem Rollback angehalten wird. Der Nachrichtenendpunkt für die MDB muss jedoch anschließend manuell gestartet werden. Weitere Informationen finden Sie im Information Center von WebSphere MQ.
  • Nachrichten können während der Transaktionswiederherstellung außerhalb der Reihenfolge zugestellt werden:
    Anmerkung: Es muss eine bestimmte Gruppe von Ereignissen in einer bestimmten Reihenfolge eintreten, damit dieses Szenario eintritt. Deshalb ist dieses Szenario nicht üblich. Wenn die Einhaltung der Reihenfolge bei der Nachrichtenzustellung jedoch für die Ausführung Ihrer Anwendung kritisch ist, müssen Sie dies berücksichtigen.
    • Eine Nachrichtenzustellung außerhalb der Reihenfolge kann bei dieser Implementierungsoption während der Wiederherstellung nach einem Fehler in einer der folgenden Komponenten auftreten:
      • Anwendungsserver, in dem die MDB ausgeführt wird
      • WebSphere MQ-Warteschlangenmanager
      • Netz, das den Anwendungsserver und den Warteschlangenmanager miteinander verbindet
    • Wenn eine dieser Komponenten mitten in der zweiphasigen Festschreibung einer MDB-Transaktion ausfällt, stellt der Transaktionsmanager des Anwendungsservers seine Verbindung zum Warteschlangenmanager wieder her, um die Transaktion aufzulösen, sobald die Komponente wieder verfügbar ist.
    • Dieser Wiederherstellungsprozess ist asynchron und es ist möglich, dass die Zustellung neuer Nachrichten an die MDB beginnt, bevor der Transaktionswiederherstellungsprozess abgeschlossen ist. Wenn das Ergebnis der Transaktionswiederherstellung ein Rollback der Transaktion ist, wird die Nachricht an die WebSphere MQ-Warteschlange zurückgegeben und der Anwendung erneut zugestellt. Dies geschieht möglicherweise, nachdem bereits neue Nachrichten zugestellt wurden.

Hinweise für eine Clusterimplementierung

  • Sie können die MDB nur in einem Cluster-Member aktivieren, da der Anwendungsserver kein Tool hat, die diese Aktivierung automatisch durchführen kann.
  • Sie können den Startstatus von Listener-Ports unabhängig von der Einstellung für das Startdatum einer Anwendung auf "Gestoppt" setzen.
  • Sie können Anwendungen, ASF-Listener-Ports und Nachrichtenendpunkte mit MBean-Schnittstellen manuell starten und stoppen, indem Sie wsadmin-Scripts oder die Schnittstellen vom Typ com.ibm.websphere.management.AdminClient aus dem Java™-Code verwenden.

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



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