Reaktionszeiten von Nachrichtenflüssen optimieren

Bevor Sie beginnen, müssen Sie folgende Task(s) ausgeführt haben:

Das Konzeptthema Nachrichtenflussknoten lesen

Beim Entwerfen eines Nachrichtenflusses hat die Flexibilität und Vielfalt der integrierten Knoten häufig zur Folge, dass es mehrere Wege zum Erreichen des Verarbeitungsziels und damit der gewünschten Endergebnisse gibt. Möglicherweise werden Sie auch feststellen, dass diese unterschiedlichen Lösungen unterschiedliche Leistungswerte liefern. Wenn dies ein wichtiger Aspekt für Sie ist, müssen Sie bei dem Entwurf ebenso auf die Leistung wie auf die Funktion achten.

Die erbrachte Leistung für die Anwendungen kann anhand von zwei Werten ermittelt werden:

  1. Reaktionszeit. Die Reaktionszeit gibt an, wie schnell die einzelnen Nachrichten vom Nachrichtenfluss verarbeitet werden. Sie wird im Wesentlichen durch den Entwurf der Nachrichtenflüsse beeinflusst. Dies wird in diesem Abschnitt weiter erläutert.
  2. Durchsatz. Der Durchsatz gibt an, wie viele Nachrichten mit bestimmten Größen in einer angegebenen Zeit von einem Nachrichtenfluss verarbeitet werden können. Dies hängt hauptsächlich von Konfigurations- und Systemressourcenfaktoren ab. Einzelheiten hierzu sowie weitere Informationen zur Domänenkonfiguration finden Sie unter Durchsatz des Nachrichtenflusses optimieren.

Es gibt mehrere Aspekte, die die Reaktionszeiten von Nachrichtenflüssen beeinflussen. Um beim Erstellen und Ändern des Nachrichtenflusses die besten Ergebnisse hinsichtlich der Geschäftsanforderungen zu erreichen, muss jedoch auch die mögliche Komplexität des Nachrichtenflusses berücksichtigt werden. Die effizientesten Nachrichtenflüsse sind nicht notwendigerweise diejenigen, die am einfachsten zu verstehen und zu verwalten sind; experimentieren Sie mit den verfügbaren Lösungen, um diejenige zu finden, die allen Anforderungen am besten gerecht wird.

Reaktionszeiten von Nachrichtenflüssen werden durch mehrere Faktoren beeinflusst:

Anzahl der Knoten, die Sie in den Nachrichtenfluss einfügen
Jeder Knoten verursacht einen gewissen Verarbeitungsaufwand. Denken Sie deshalb sorgfältig über den Inhalt des Nachrichtenflusses nach, einschließlich der Verwendung von untergeordneten Nachrichtenflüssen.

Verwenden Sie in einem Nachrichtenfluss so wenige Knoten wie möglich, denn jeder Knoten, den Sie in den Nachrichtenfluss einfügen, erhöht den Arbeitsaufwand im Broker. Es gibt eine Obergrenze für die Anzahl der Knoten in einem Nachrichtenfluss. Diese Obergrenze wird durch Systemressourcen, insbesondere die Stack-Größe, bestimmt.

Weitere Informationen zu Stack-Größen finden Sie unter Systemaspekte bei der Nachrichtenflussentwicklung.

Weiterleitung und Verarbeitung von Nachrichten durch den Nachrichtenfluss
In einigen Situationen bieten die integrierten Knoten und vielleicht auch andere Knoten, die in Ihrem System zur Verfügung stehen, mehr als eine Möglichkeit, um dieselbe Funktion bereitzustellen. Wählen Sie möglichst die einfachste Konfiguration aus. Wenn Sie beispielsweise bestimmte Verarbeitungsschritte auf Basis des Wertes eines Feldes in einer Nachricht festlegen möchten, können Sie einen Nachrichtenfluss mit einer Folge von Filterknoten zum Bearbeiten der einzelnen Fälle entwerfen. Falls angebracht, können Sie Nachrichten zu Gruppen zusammenfassen und durch den Filterknoten leiten, um die Anzahl der Filter, die jeder Nachrichtentyp vor der Verarbeitung durchlaufen muss, zu reduzieren.

Beispiel: Sie verwenden einen Nachrichtenfluss, der acht verschiedene Nachrichtentypen bearbeitet (Rechnung, Versandanzeige und so weiter). Sie können einen Filterknoten einfügen, der die verschiedenen Nachrichtentypen erkennt und die Nachrichten abhängig vom Typ weiterleitet. Sie können die Leistung dieses Verfahrens optimieren, indem Sie in den ersten Filterknoten Tests auf die häufigsten Nachrichtentypen durchführen. Der achte Nachrichtentyp muss jedoch immer durch acht Filterknoten geleitet werden.

Wenn Sie die Nachrichtentypen zu Gruppen zusammenfassen können (z. B., wenn der Nachrichtentyp numerisch ist und Sie Tests auf alle Typen größer als vier und nicht größer als vier durchführen können), können Sie die Anzahl der erforderlichen Filterknoten verringern. Der erste Filterknoten testet auf größer als vier und leitet die Nachricht an zwei weitere Filternoten (angehängt an die TRUE- und FALSE-Terminals) weiter, die auf kleiner als zwei bzw. kleiner als sechs testen. Zusätzliche vier Filterknoten können dann auf eins oder zwei, drei oder vier und so weiter testen. Die tatsächliche Anzahl der erforderlichen Filterknoten ist zwar dieselbe, aber die Anzahl der Knoten, die jede einzelne Nachricht durchlaufen muss, wird verringert.

Die Verwendung eines Knotens 'Weiterleitung_an_Zieladresse' in Verbindung mit einer Gruppe von Zieladressenknoten stellt möglicherweise eine bessere Alternative zu einer Folge von Filterknoten dar. Jede Nachricht durchläuft eine kleinere Anzahl von Knoten, was den Durchsatz verbessert. Dabei müssen Sie jedoch beachten, dass die Verwendung eines Knotens 'Weiterleitung_an_Zieladresse' bedeutet, dass ein Rechenknoten verwendet wird: der Aufwand für diesen Knoten macht möglicherweise die Vorteile zunichte. Wenn eine begrenzte Anzahl von Nachrichtentypen verarbeitet wird, ist eine kleine Anzahl von Filterknoten die effizientere Lösung.

Das Beispielprogramm 'Airline Reservations' zeigt, wie Sie anstatt mehrerer Filterknoten im Nachrichtenfluss 'XML_PassengerQuery' die Knoten 'Weiterleitung_an_Zieladresse' und Zieladressenknoten verwenden können. Das Beispielprogramm 'Message Routing' zeigt, wie Sie Routing-Informationen in einer Datenbanktabelle in einem Speichercache im Nachrichtenfluss speichern können.

Nachrichtenfluss enthält Schleifen
Vermeiden Sie Schleifen mit sich wiederholenden Knoten; sie können sehr ineffizient sein und Leistungsprobleme und Stack-Fehler verursachen. Durch die Verwendung eines Rechenknotens mit mehreren PROPAGATE-Anweisungen lässt sich eine Schleife, die eine Folge von Knoten durchläuft, vermeiden.
Effizienz des ESQL-Codes
Überprüfen Sie den gesamten ESQL-Code, den Sie für Ihre Nachrichtenflussknoten erstellt haben. Beim Entwickeln und Testen eines Knotens haben Sie möglicherweise Anweisungen verwendet, die nach Fertigstellung der Nachrichtenverarbeitung nicht mehr erforderlich sind. Überprüfen Sie auch, ob in dem ein oder anderen Fall aus zwei Anweisungen eine einzige Anweisung gemacht werden kann. Nehmen Sie sich Zeit für eine Überprüfung des ESQL-Codes, um ihn zu vereinfachen und Leistungsverbesserungen zu erreichen.

Wenn Sie Nachrichtenflüsse aus einem früheren Release importiert haben, überprüfen Sie die ESQL-Anweisungen hinsichtlich der in Version 5.0 verfügbaren ESQL, um die Effizienz, wenn möglich, durch die Verwendung neuer Funktionen oder Anweisungen zu erhöhen.

Verwendung von persistenten und transaktionsorientierten Nachrichten
Persistente Nachrichten werden während der Nachrichtenflussverarbeitung auf Platte gespeichert. Dies kann verhindert werden, wenn Sie solche Nachrichten beim Empfangen oder Senden (oder bei beiden Vorgängen) als nicht persistent spezifizieren. Wenn Ihr Nachrichtenfluss nur nicht persistente Nachrichten bearbeitet, überprüfen Sie die Konfiguration der Knoten und den Nachrichtenfluss selbst. Falls es sich bei Ihren Nachrichten um nicht persistente Nachrichten handelt, ist möglicherweise keine Transaktionsunterstützung notwendig. Die Standardkonfiguration einiger Knoten erzwingt Transaktionsfähigkeit. Indem Sie diese Eigenschaften ändern und den Nachrichtenfluss erneut implementieren, können Sie die Reaktionszeiten verbessern.
Nachrichtenlänge
Je länger eine Nachricht, desto länger dauert die Verarbeitung. Wenn Sie lange Nachrichten in kleinere Informationsblöcke aufteilen, können Sie die Geschwindigkeit erhöhen, mit der sie vom Nachrichtenfluss bearbeitet werden. Das Beispielprogramm 'Large Messaging' zeigt, wie Sie die Anforderungen an den virtuellen Speicher für den Nachrichtenfluss minimieren können, um die Leistung eines Nachrichtenflusses bei der Verarbeitung potenziell großer Nachrichten zu verbessern.
Nachrichtenformat
Obwohl WebSphere Message Broker mehrere Nachrichtenformate unterstützt und Funktionen zur Umwandlung von einem Format in ein anderes bereitstellt, hat dies einen zusätzlichen Arbeitsaufwand zur Folge. Stellen Sie sicher, dass keine unnötigen Konvertierungen oder Umwandlungen ausgeführt werden.

Weitere Informationen zur Verbesserung der Leistung eines Nachrichtenflusses finden Sie in diesem developerWorks-Artikel zur Nachrichtenflussleistung.

Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Übersicht zu Implementierungsvorgängen
Systemaspekte bei der Nachrichtenflussentwicklung
Zugehörige Tasks
Brokerdomänen konfigurieren
Durchsatz des Nachrichtenflusses optimieren
Einen Nachrichtenfluss entwerfen
Mehrere Empfangsknoten verwenden
Nachrichtenflüsse erstellen
Nachrichtenflussinhalte definieren
Konfigurierbare Eigenschaften bearbeiten
Zugehörige Verweise
Integrierte Knoten
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac00355_