Nachrichtendurchsatz

In WebSphere MQ Publish/Subscribe verarbeitet ein einziger Thread die Veröffentlichungen in den einzelnen Datenstromwarteschlangen. Dadurch wird die Reihenfolge festgelegt, in der die Veröffentlichungen in der Warteschlange verarbeitet werden.

Wenn Sie sich mit dem Nachrichtendurchsatz in einer WebSphere Message Broker-Brokerdomäne auseinandersetzen, sollten Sie auch überlegen, wie wichtig die Reihenfolge ist, in der die Nachrichten veröffentlicht werden. Verfahren, die einen höheren Nachrichtendurchsatz ermöglichen, stellen nicht unbedingt die Reihenfolge sicher.

WebSphere Message Broker unterstützt zwei Optionen, mit denen der Durchsatz erhöht werden kann:
  1. Sie können zusätzliche Threads für den Nachrichtenfluss konfigurieren, indem Sie die Eigenschaft Zusätzliche Instanzen des MQEmpfangsknoten setzen. Wenn diese Eigenschaft gesetzt ist, stellt der Broker zusätzliche Threads zum Auslesen der Nachrichten aus der Eingabewarteschlange zur Verfügung, so dass mehrere Veröffentlichungen gleichzeitig vom Broker verarbeitet werden können. Sie müssen sicherstellen, dass das Attribut share der Datenstromwarteschlange (Eingabewarteschlange) gesetzt ist (in WebSphere MQ Publish/Subscribe musste dieses Attribut für Datenstromwarteschlangen auf noshare gesetzt sein).

    Wenn mehrere Threads die Nachrichten einer einzelnen Warteschlange verarbeiten, kann nicht garantiert werden, dass die Veröffentlichungen in der Reihenfolge an den Subskribenten übermittelt werden, in der sie in die Eingabewarteschlange gestellt wurden. In WebSphere Message Broker steht allerdings ein Verfahren zur Verfügung, mit dem Veröffentlichungen gleichzeitig verarbeitet werden können, ohne dass dies Auswirkungen auf die geforderte Reihenfolge hat.

    Setzen Sie die Eigenschaft Modus für Reihenfolge des MQEmpfangsknoten auf Nach Benutzer-ID. Dadurch wird sichergestellt, dass die Veröffentlichungen in der Reihenfolge übermittelt werden, in der sie von einem Benutzer an den Broker gesendet wurden. Ist diese Eigenschaft gesetzt, wird die Verarbeitung von Nachrichten mit einem UserIdentifier-Feld im MQMD angehalten, wenn ein anderer Thread, der denselben Nachrichtenfluss verarbeitet, gerade eine Nachricht mit demselben UserIdentifier verarbeitet.

    Die Vorteile zusätzlicher Instanzen des Nachrichtenflusses gehen natürlich verloren, wenn alle Publisher-Anwendungen unter derselben Benutzer-ID aktiv sind. Dieser Fall kann beispielsweise eintreten, wenn Publisher-Anwendungen mit fernen Warteschlangenmanagern verbunden sind. Nachrichten von diesen fernen Publishern kommen im Broker über einen Kanal an, der unter Umständen so konfiguriert wurde, dass die Benutzer-ID des Kanalprogramms und nicht die des ursprünglichen Clients eingesetzt wird. Weitere Informationen darüber, wie das Kanalattribut PUTAUT gesetzt werden muss, um das Standardverhalten der Kanäle zu ändern, finden Sie im Handbuch WebSphere MQIntercommunications.

  2. Sie können einen oder mehrere zusätzliche Nachrichtenflüsse (keine Instanzen) konfigurieren, die Veröffentlichungen aus verschiedenen Warteschlangen auslesen. Darüber hinaus müssen Sie auch einige Ihrer Publisher-Anwendungen so konfigurieren, dass sie Veröffentlichungen in diese neuen Warteschlangen stellen. Dadurch wird der Datenstrom aufgeteilt und Belastung verteilt.

    Wenn Sie den Durchsatz mit diesem Verfahren erhöhen möchten, müssen Sie die Auswirkungen bedenken, die dies auf die Reihenfolge hat, in der die Veröffentlichungen übermittelt werden. Insbesondere müssen Sie sicherstellen, dass die Publisher-Anwendungen nach den Themen aufgeteilt werden, die sie veröffentlichen, damit für jedes Thema die Reihenfolge eingehalten wird, falls dies wichtig sein sollte. Wenn Ihre Anwendungen zu ein und demselben Thema Veröffentlichungen in verschiedene Datenströme (Warteschlangen) stellen, kann die Beibehaltung der Reihenfolge nicht garantiert werden.

    Wenn Sie die Publisher-Anwendungen aktualisieren, so dass sie Veröffentlichungen an eine neue Warteschlange senden, die einen anderen Namen als der Datenstrom hat in den sie sonst Veröffentlichungen stellen, müssen Sie diese Anwendungen außerdem so konfigurieren, dass der Name des Datenstroms explizit in die Veröffentlichungen eingesetzt wird; dies geschieht über den Parameter 'MQPSStreamName'

    Publisher-Anwendungen, die einen Datenstromparameter angeben, müssen nicht geändert werden, da dieser Parameter Priorität hat. Wenn Publisher-Anwendungen allerdings keinen Datenstromparameter angeben, hängt das Verhalten vom Wert der Eigenschaft Implizite Datenstrombenennung des Veröffentlichungsknotens im Nachrichtenfluss ab:
    • Ist die Eigenschaft auf false gesetzt, wird angenommen, dass es sich um den Standarddatenstrom handelt.
    • Ist die Eigenschaft auf true gesetzt, wird angenommen, dass es sich bei dem Namen um den der Datentstromwarteschlange handelt.
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
aq19900_