Beim Entwurf eines Nachrichtenflusses haben Sie aufgrund der Flexibilität und großen Bandbreite der integrierter Knoten oft mehrere Möglichkeiten, eine Verarbeitung zu beenden und die von Ihnen gewünschten Endergebnisse zu erzielen. Sie werden jedoch auch feststellen, dass diese verschiedenen Lösungen unterschiedliche Leistungen hervorbringen. Wenn dies für Sie wichtig ist, müssen Sie die Lösungen so gestalten, dass sowohl Leistung als auch Funktionen berücksichtigt werden.
Es gibt zwei Möglichkeiten, wie Sie die Leistung Ihrer Anwendungen verbessern können:
Mehrere Aspekte beeinflussen die Antwortzeit des Nachrichtenflusses. Wenn Sie jedoch die Konstruktion Ihres Nachrichtenflusses gestalten und ändern, um das bestmögliche Ergebnis für Ihre spezifischen Geschäftsanforderungen zu erzielen, müssen Sie ebenfalls berücksichtigen, dass der Nachrichtenfluss schließlich sehr komplex werden kann. Die effizientesten Nachrichtenflüsse sind nicht immer diejenigen, die am leichtesten nachvollziehbar und am einfachsten zu pflegen sind. Probieren Sie die zur Verfügung stehenden Lösungen aus, um so ein ausgewogenes und Ihrem Bedarf entsprechendes Ergebnis zu finden.
Die Antwortzeit eines Nachrichtenflusses wird von mehreren Faktoren beeinflusst:
Verwenden Sie in einem Nachrichtenfluss so wenig Knoten wie möglich. Jeder Knoten, den Sie in einem Nachrichtenfluss einschließen, erhöht den Systemaufwand des Brokers. Es gibt eine Obergrenze für die Anzahl der Knoten in einem einzelnen Datenfluss. Diese Obergrenze wird durch Systemressourcen, insbesondere die Stack-Größe, bestimmt.
Weitere Informationen zu Stack-Größen finden Sie unter Systemaspekte bei der Nachrichtenflussentwicklung.
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.
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.
Weitere Informationen zur Verbesserung der Leistung eines Nachrichtenflusses finden Sie in diesem developerWorks-Artikel zur Nachrichtenflussleistung.