Durchsatz des Nachrichtenflusses optimieren

Jeder von Ihnen entworfene Nachrichtenfluss muss einen vollständigen Satz von Verarbeitungsschritten für Nachrichten, die von einer bestimmten Quelle empfangen werden, enthalten. Dadurch können sehr komplexe Nachrichtenflüsse entstehen, die eine große Zahl von Knoten enthalten und Leistungseinbußen und mögliche Engpässe verursachen. Eine Erhöhung der Anzahl von Nachrichtenflüssen zur Verarbeitung der Nachrichten bietet die Möglichkeit zur Parallelverarbeitung und dadurch einen verbesserten Durchsatz.

Sie können auch die Art und Weise, in der die vom Nachrichtenfluss ausgeführten Aktionen festgeschrieben werden, und die Reihenfolge, in der Nachrichten verarbeitet werden, beeinflussen.

Berücksichtigen Sie die folgenden Optionen zur Optimierung des Nachrichtenflussdurchsatzes:

Verarbeitung von Nachrichten durch mehrere Threads in einem einzigen Nachrichtenfluss
Beim Einsetzen eines Nachrichtenflusses startet der Broker automatisch eine Instanz des Nachrichtenflusses für jeden darin enthaltenen Empfangsknoten. Dies ist das Standardverhalten. Wenn Sie jedoch einen Nachrichtenfluss einsetzen, der eine sehr große Zahl von Nachrichten verarbeitet, kann die Eingabequelle (z. B. eine WebSphere MQ-Warteschlange) zum Engpass werden.

Sie können die Eigenschaft Zusätzliche Instanzen des eingesetzten Nachrichtenflusses in der BAR-Datei aktualisieren: Der Broker startet zusätzliche Kopien des Nachrichtenflusses in separaten Threads und ermöglicht dadurch eine Parallelverarbeitung. Dies ist die effektivste Methode zur Handhabung dieser Situation, wenn die Reihenfolge, in der Nachrichten verarbeitet werden, nicht so wichtig ist.

Wenn der Nachrichtenfluss Nachrichten aus einer WebSphere MQ-Warteschlange empfängt, können Sie die Reihenfolge, in der Nachrichten verarbeitet werden, bis zu einem gewissen Grad beeinflussen, indem Sie die Eigenschaft Modus für Reihenfolge des MQEmpfangsknotens (MQInput) festlegen:

  • Wenn Sie die Eigenschaft Modus für Reihenfolge auf Nach Benutzer-ID setzen, stellt der Knoten sicher, dass Nachrichten von einem bestimmten Benutzer (identifiziert durch das Feld 'UserIdentifier' im MQMD) in der garantierten Reihenfolge verarbeitet werden. Eine zweite Nachricht von einem Benutzer wird von keiner Instanz des Nachrichtenflusses verarbeitet, solange eine vorhergehende Nachricht dieses Benutzer noch von einer anderen Instanz des Nachrichtenflusses verarbeitet wird.
  • Wenn Sie Modus für Reihenfolge auf Nach WS-Reihenfolge setzen, verarbeitet der Knoten eine Nachricht nach der anderen, um die Reihenfolge beizubehalten, in der die Nachrichten aus der Warteschlange gelesen werden. Der Knoten verhält sich daher so, als ob Sie die Eigenschaft Zusätzliche Instanzen des Nachrichtenflusses auf Null gesetzt hätten.

Für Publish/Subscribe-Anwendungen, die über eines der unterstützten Protokolle mit dem Broker kommunizieren, werden Nachrichten zu einem angegebenen Thema von den Brokern in der Reihenfolge veröffentlicht, in der sie von der Veröffentlichungskomponente empfangen werden (vorbehaltlich einer Änderung der Reihenfolge abhängig von der Nachrichtenpriorität, falls anwendbar). Dies bedeutet normalerweise, dass jeder Subskribent Nachrichten von einem bestimmten Broker, zu einem bestimmten Thema oder von einer bestimmten Veröffentlichungskomponente in der Reihenfolge empfängt, in der sie von der jeweiligen Veröffentlichungskomponente veröffentlicht werden.

Es ist jedoch möglich, dass Nachrichten gelegentlich in einer anderen Reihenfolge zugestellt werden. Dies kann beispielsweise dann passieren, wenn ein Link im Netz fehlschlägt und nachfolgende Nachrichten von einem anderen Link weitergeleitet werden.

Wenn Sie sicherstellen müssen, dass die Reihenfolge der empfangenen Nachrichten erhalten bleibt, können Sie für jede veröffentlichte Nachricht entweder den Parameter SeqNum (Folgenummer) oder den Parameter PubTime (Zeitmarke für Veröffentlichung) des Befehls Publish verwenden, um die Veröffentlichungsreihenfolge zu berechnen.

Weitere Informationen zu den für alle MQI- und AMI-Benutzer empfohlenen Verfahren finden Sie für in MQI geschriebene Programme im WebSphere MQApplication Programming Guide und in der WebSphere MQApplication Messaging Interface (als SupportPac MA0F in Webseite mit WebSphere MQ SupportPacs verfügbar) für in AMI geschriebene Programme.

WebSphere MQ Everyplace und SCADA-Anwendungen verwenden eine andere Methode zur Sortierung von Nachrichten als unter WebSphere MQ Mobile Transport bzw. WebSphere MQ Telemetry Transport beschrieben. Der Broker kümmert sich nicht um die Nachrichtenreihenfolge bei Nachrichten, die über WebSphere MQ Real-time Transport oder WebSphere MQ Multicast Transport empfangen werden.

Mehrere Kopien des Nachrichtenflusses in einem Broker
Sie können auch mehrere Kopien desselben Nachrichtenflusses in unterschiedlichen Ausführungsgruppen desselben Brokers einsetzen. Dies hat ähnliche Auswirkungen wie die Erhöhung der Anzahl der Verarbeitungsthreads in einem einzelnen Nachrichtenfluss, ist jedoch in der Regel mit einer geringeren Leistungszunahme verbunden.

Bei dieser Option besteht auch nicht die Möglichkeit, die Reihenfolge, in der die Nachrichten verarbeitet werden, zu bestimmen. Der Grund hierfür ist, dass bei mehreren aktiven Kopien des Nachrichtenflusses im Broker jede der Kopien eine Nachricht zur selben Zeit aus derselben Warteschlange verarbeiten kann. Die Zeit für die Verarbeitung einer Nachricht kann variieren. Wenn mehrere Nachrichtenflüsse auf dieselbe Warteschlange zugreifen, kann es deshalb vorkommen, dass Nachrichten aus der Eingabequelle in einer Zufallsreihenfolge gelesen werden. Die von den Nachrichtenflüssen erstellte Reihenfolge der Nachrichten entspricht dann möglicherweise nicht der Reihenfolge der ursprünglichen Nachrichten.

Stellen Sie sicher, dass Anwendungen, die Nachrichten von diesen Nachrichtenflüssen empfangen, auch Nachrichten außerhalb der Reihenfolge akzeptieren.

Kopien des Nachrichtenflusses in mehreren Brokern
Sie können mehrere Kopien desselben Nachrichtenflusses in unterschiedlichen Brokern einsetzen. Diese Lösung erfordert Änderungen in der Konfiguration, weil Sie sicherstellen müssen, dass Anwendungen, die Nachrichten an den Nachrichtenfluss liefern, ihre Nachrichten in die richtige Eingabewarteschlange oder den richtigen Port stellen können. Sie können diese Änderungen in vielen Fällen beim Einsetzen des Nachrichtenflusses durchführen, indem Sie die konfigurierbaren Eigenschaften des Nachrichtenflusses festlegen.
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Übersicht zu Implementierungsvorgängen
Zugehörige Tasks
Reaktionszeiten von Nachrichtenflüssen optimieren
Nachrichtenflüsse erstellen
Nachrichtenflussinhalte definieren
Konfigurierbare Eigenschaften bearbeiten
Zugehörige Verweise
Integrierte Knoten
Konfigurierbare Nachrichtenflusseigenschaften
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 24. Aug. 2006
ac00350_