Strikte Nachrichtenreihenfolge für Busziele

Wenn die Nachrichtenreihenfolge auf jeden Fall eingehalten werden muss, kann ein Ziel so konfiguriert werden, dass die Reihenfolge der Nachrichten strikter als bei einem normalen Ziel beibehalten wird.

Nachrichten, die von einem Erzeuger für ein Ziel erzeugt werden, sieht ein Konsument dieses Ziels im Allgemeinen in der Reihenfolge, in der sie erzeugt wurden. Es gibt jedoch bestimmte Topologien und Ereignisse, z. B. Systemausfälle, die die Reihenfolge der Nachrichten ändern können. Nähere Einzelheiten hierzu finden Sie im Artikel Nachrichtenreihenfolge. Wenn eine strikte Einhaltung der Nachrichtenreihenfolge erforderlich ist, können Sie ein Ziel so konfigurieren, dass die Reihenfolge der Nachrichten strikter beibehalten wird. Bei der Verwendung einer strikten Nachrichtenreihenfolge in Zusammenhang mit eingeschränkten Topologien (siehe nachfolgende Beschreibung) wird die Nachrichtenreihenfolge unter allen Umständen beibehalten.

Automatisch umgesetzte Einschränkungen

Wenn Sie in Ihrem System ein Ziel mit strikter Einhaltung der Nachrichtenreihenfolge konfigurieren, werden zur Laufzeit bestimmte Einschränkungen automatisch umgesetzt. Diese Einschränkungen beeinflussen die Art und Weise, in der Anwendungen mit dem Ziel interagieren, um die Nachrichtenfolge strikt einzuhalten. Sie müssen die folgenden Einschränkungen unbedingt verstehen, bevor Sie die strikte Einhaltung der Nachrichtenreihenfolge für ein Ziel konfigurieren.
  1. Es wird verhindert, dass mehrere Konsumenten gleichzeitig eine Verbindung zu einem Ziel mit Einhaltung der Nachrichtenreihenfolge herstellen. Wenn mehrere Konsumenten gleichzeitig Nachrichten von einem Ziel konsumieren, kann dies dazu führen, dass die Nachrichten nicht in der richtigen Reihenfolge konsumiert werden. Bei Warteschlangenzielen mit Einhaltung der Nachrichtenreihenfolge und allen Subskriptionen in einem Topicbereich mit Einhaltung der Nachrichtenreihenfolge kann deshalb nur jeweils ein Konsument eine Verbindung herstellen. Dies ist äquivalent zur Auswahl der Einstellung "Exklusiver Empfang" für ein Warteschlangenziel und zum Einstellen der Option "Permanente Subskriptionen freigeben" auf "Nie freigeben" für eine Verbindungsfactory für JMS-Topics. Es werden Warnungen im Systemprotokoll generiert, um anzuzeigen, ob diese Optionen überschrieben wurden. Außerdem kann der verbundene Konsument nur jeweils eine Transaktion ausführen (dies ist das normale Verhalten für viele Messaging-Schnittstellen, wie z. B. JMS, und sollte deshalb keine Auswirkungen auf viele Benutzer haben).
  2. Teilweise konsumierte Nachrichten verhindern, dass nachfolgende Nachrichten konsumiert werden. Für Standardziele (d. h. Ziele, bei denen die Option für strikte Einhaltung der Nachrichtenreihenfolge nicht aktiviert ist) werden Nachrichten, die nur teilweise vom Ziel konsumiert wurden (z. B. in einer Transaktion empfangen wurden, die noch festgeschrieben werden muss), unter Umständen von einem Konsumenten übersprungen, um die weitere Verarbeitung von Nachrichten, die zuvor konsumierten, aber noch festzuschreibenden Nachrichten folgen. Dies kann die Nachrichtenreihenfolge durcheinander bringen. Bei einem Ziel mit Einhaltung der Nachrichtenreihenfolge werden solche Nachrichten von einem Konsumenten nicht übersprungen. Stattdessen wird der Konsument so lange blockiert, bis die Nachricht entweder vollständig entfernt (wenn z. B. die noch nicht festgeschriebene Transaktion festgeschrieben wird) oder ersetzt wird (wenn z. B. die noch nicht festgeschriebene Transaktion rückgängig gemacht wird). Eine solche Situation tritt ein, wenn ein zuvor verbundener Konsument eine Transaktion, die zum Konsumieren von Nachrichten vom Ziel verwendet wurde, nicht festschreiben kann oder wenn eine Transaktionsressource während der Festschreibung einer Transaktion vorübergehend nicht verfügbar ist. Wenn die Ressource permanent nicht nicht verfügbar bleibt, finden Sie im Artikel Unbestätigte Transaktionen auflösen Informationen zum Auflösen solcher Transaktionen.
  3. Gleichzeitig ausgeführte MDBs sind auf Ziele mit Einhaltung der Nachrichtenreihenfolge beschränkt. Die maximale Anzahl paralleler Endpunkte und die maximale Stapelgröße jeder in einem Ziel mit Einhaltung der Nachrichtenreihenfolge implementierten MDB werden überschrieben, sodass sie identisch sind. Weitere Informationen hierzu finden Sie im Artikel JMS-Aktivierungsspezifikation [Einstellungen]. Auf diese Weise wird die geordnete Verarbeitung von Nachrichten durch die MDB sichergestellt. Wenn das System diese Eigenschaft zur Laufzeit überschreibt, wird eine Warnung im Systemprotokoll generiert.
  4. Parallele Mediationen sind auf Ziele mit Einhaltung der Nachrichtenreihenfolge beschränkt. Die Einstellung für die Unterstützung paralleler Mediationen wird für jede Mediation eines Ziels mit Einhaltung der Nachrichtenreihenfolge überschrieben und abgewählt. Weitere Informationen hierzu finden Sie im Artikel Parallele Mediationen. Auf diese Weise wird die geordnete Verarbeitung von Nachrichten durch die Mediation sichergestellt. Wenn das System diese Eigenschaft zur Laufzeit überschreibt, wird eine Warnung im Systemprotokoll generiert.
  5. Wenn die Option Endpunkte bei wiederholten Nachrichtenfehlern automatisch stoppen aktiviert ist, wird der Wert der Option Schwellenwert für aufeinanderfolgende Nachrichtenfehler überschrieben und auf 1 gesetzt.
  6. Dieser Abschnitt befasst sich mit den Auswirkungen der aktivierten Option "Nachrichtenreihenfolge strikt einhalten" auf ein vorhandenes Topicziel. Wenn die strikte Einhaltung der Nachrichtenreihenfolge für ein vorhandenes Topicziel aktiviert ist, werden alle vorhandenen permanenten Subskriptionen und die zugehörigen Nachrichten ungültig. Wenn die strikte Einhaltung der Nachrichtenreihenfolge aktiviert ist und die Umgebung erneut gestartet wird, werden die vorhandenen permanenten Subskriptionen gelöscht und erneut erstellt. Die Nachrichten, die zu den permanenten Subskriptionen gehören, werden ebenfalls gelöscht.

Weitere Einschränkungen, die sich auf die Reihenfolge der Nachrichten auswirken können

Selbst wenn die strikte Einhaltung der Nachrichtenreihenfolge in einem Ziel aktiviert ist, werden die folgenden Einschränkungen nicht automatisch umgesetzt. Diese Einschränkungen können die Nachrichtenreihenfolge jedoch beeinflussen und sollten deshalb verstanden werden:
  • Wenn für ein Ziel ein Ausnahmeziel konfiguriert ist, ist es möglich, dass Nachrichten, die für dieses Ziel bestimmt sind, beim Auftreten von Fehlern an das Ausnahmeziel gesendet werden, beispielsweise, wenn eine Nachricht den oberen Grenzwert für fehlgeschlagene Zustellungen erreicht. Diese Umleitung von Nachrichten könnte als Änderung der Nachrichtenreihenfolge betrachtet werden. In diesem Fall sollte im Ziel die Eigenschaft für Ausnahmeziele auf "Ohne" gesetzt werden. Dies führt dazu, dass Nachrichten, die ansonsten an das Ausnahmeziel verschoben werden würden, am Ziel verbleiben.
  • Die Änderung der Topologie eines Service Integration Bus kann sich auf die Nachrichtenreihenfolge auswirken. Das Löschen und erneute Erstellen eines Ziels mit Einhaltung der Nachrichtenreihenfolge muss so betrachtet werden, dass es sich um zwei unterschiedliche Ziele handelt. Deshalb kann die Nachrichtenfolge bei solchen Zielen nicht gewährleistet werden.
  • Das Einführen oder Entfernen einer Mediation kann sich auf die Nachrichtenreihenfolge auswirken. Wenn eine Mediation in ein Ziel eingeführt oder aus einem Ziel entfernt wird, während Nachrichten an das und vom Ziel gesendet werden, bleibt die Nachrichtenreihenfolge nicht zwingenderweise erhalten.
  • Mediationen können so entworfen werden, dass sie die Nachrichtenreihenfolge bewusst beeinflussen. Deshalb sich das Ändern einer Mediation direkt auf die Nachrichtenreihenfolge auswirken. Sie könnten beispielsweise eine Mediation einführen, die die Reihenfolge der Nachrichten ändert oder Nachrichten an andere Ziele weiterleitet.
  • Aliasziele und fremde Ziele haben keine Möglichkeit, die Nachrichtenreihenfolge strikt einzuhalten. Es kann nur die Nachrichtenreihenfolge des zugrunde liegenden Ziels gewährleistet werden.
  • Wenn ein Warteschlangenziel in einem Busmember des Typs "Cluster" implementiert ist, das mehrere Messaging-Engines hat, was bedeutet, dass das Ziel mehrere Warteschlangenpunkte oder Mediationspunkte hat, kann die Nachrichtenreihenfolge am Ziel nicht eingehalten werden. Deshalb kann durch das Aktivieren der Einstellung für strikte Einhaltung der Nachrichtenreihenfolge für ein solches Ziel die Nachrichtenreihenfolge nicht garantiert werden. Wenn Sie die Nachrichtenaffinität konfigurieren, können ganze Sätze von Nachrichten nacheinander zur Verarbeitung durch einen einzigen Konsumenten an denselben Warteschlangenpunkt gesendet werden. Die Nachrichtenaffinität hat Auswirkungen auf die Leistung, weil die Nachrichten nicht mehr auf mehrere Warteschlangenpunkte verteilt werden.
    Wichtig: Das System verhindert nicht, dass Sie partitionierte Ziele verwenden. Es liegt in Ihrer Verantwortung sicherzustellen, dass keine partitionierte Ziele im System verwendet werden.
  • Nachrichten mit einer anderen Zuverlässigkeitsstufe als "garantiert, persistent" können unter bestimmten Bedingungen verloren gehen oder dupliziert werden. Weitere Informationen hierzu finden Sie im Artikel Nachrichtenzuverlässigkeitsstufen - JMS-Zustellmodus und Servicequalität der Serviceintegration. Wenn dies als Verstoß gegen die Einhaltung der Nachrichtenreihenfolge betrachtet wird, sollten nur Nachrichten mit der Zuverlässigkeitsstufe "garantiert, persistent" an einem Ziel mit strikter Einhaltung der Reihenfolge verwendet werden.
  • Die Nachrichtenreihenfolge wird nur für eine bestimmte Nachrichtenpriorität garantiert, d. h. Nachrichten mit einer anderen Priorität können Nachrichten mit niedrigerer Priorität "überholen".
  • Die Nachrichtenreihenfolge wird nur für eine bestimmte Nachrichtenzuverlässigkeit garantiert, d. h. Nachrichten mit einer anderen Zuverlässigkeitsstufe können Nachrichten mit anderer Zuverlässigkeitsstufe "überholen".
  • Obwohl es nicht zulässig ist, dass mehrere Konsumenten eine Verbindung zu einem Ziel mit Einhaltung der Nachrichtenreihenfolge herstellen, können mehrere Erzeuger verwendet werden, die Nachrichten an solche Ziele senden. Wenn mehrere Erzeuger verwendet werden, kann die Nachrichtenreihenfolge nicht garantiert werden, da Nachrichten am Ziel in der Reihenfolge erscheinen, in der sie von den sendenden Transaktionen festgeschrieben werden.
  • Anwendungscode kann Logik enthalten, die die Nachrichtenreihenfolge beeinflussen kann.

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=cjo_message_order_
Dateiname:cjo_message_order_.html