Jeder von Ihnen entworfene Nachrichtenfluss muss einen vollständige Verarbeitungsgruppe für Nachrichten, die von bestimmten Quellen empfangen werden, bereitstellen. Dies kann jedoch zu sehr komplexen Nachrichtenflüssen mit vielen eingeschlossenen Knoten und zu Engpässen in der Systemleistung und des Systemaufwands führen. Verwenden Sie mehrere Nachrichtenflüsse zur Verarbeitung der Nachrichten ermöglicht dies Parallelverarbeitung und verbessert den Durchsatz.
Sie können auch berücksichtigen, wie die vom Nachrichtenfluss aufgenommenen Aktionen festgeschrieben werden und in welcher Reihenfolge die Nachrichten verarbeitet werden sollen.
Berücksichtigen Sie folgende Optionen, um den Durchsatz des Nachrichtenflusses zu optimieren:
Sie können die Eigenschaft Zusätzliche Instanzen des implementierten Nachrichtenflusses in der Bar-Datei aktualisieren: Der Broker startet auf getrennten Threads zusätzliche Kopien des Nachrichtenflusse und ermöglicht so Parallelverarbeitung. Wenn die Reihenfolge, in der die Nachrichten verarbeitet werden, für Sie keine Rolle speilt, ist das die effizienteste Art, diese Situation zu behandeln.
Wenn der Nachrichtenfluss Nachrichten von einer WebSphere MQ-Warteschlange empfängt, können Sie bis die Reihenfolge beeinflussen, in der die Nachrichten verarbeitet werden, zu einem gewissen Grad wenn Sie die Eigenschaft Order Mode (Reihenfolge-Modus) des MQEmfpangs-Knotens festsetzen:
In Publish/Subscribe-Anwendungen, die über ein unterstütztes Protokoll mit dem Broker kommunizieren werden die Nachrichten zu einem vorgegebenen Thema vom Broker in der Reihenfolge veröffentlicht, in der wie sie vom Bereitsteller erhalten werden (gegebenenfalls muss die Reihenfolge anhand der Nachrichtenpriorität geändert werden). Dies bedeutet, dass normalerweise jeder Subskribent Nachrichten zu einem bestimmten Thema von einem bestimmten Broker und von einem bestimmten Bereitsteller empfängt, und zwar in der Reihenfolge, in der sie von diesem Bereitsteller veröffentlicht wurden.
Gelegentlich werden Nachricht jedoch nicht in der Reihenfolge zugestellt. Dies kann z. B. passieren, wenn eine Verbindung im Netzwerk fehlschlägt und die nachfolgenden Nachrichten an eine andere Verbindung weiter geleitet werden.
Wenn Sie die Reihenfolge, in der die Nachrichten empfangen werden, sicherstellen möchten, können Sie entweder den Parameter SeqNum (Folgenummer) oder den Parameter PubTime (Zeitstempel der Veröffentlichung) auf dem Befehl Veröffentlichen für jede veröffentlichte Nachricht verwenden, um die Reihenfolge der Veröffentlichung 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 Nutzen Methoden zur Sortierung von Nachrichten. Siehe hierzu WebSphere MQ Mobile Transport bzw. WebSphere MQ Telemetry Transport. Der Broker stellt keine Nachrichtensortierung für Nachrichten zu Verfügung, die über WebSphere MQ Web Services Transport, WebSphere MQ Real-time Transport oder WebSphere MQ Multicast Transport empfangen wurden.
Mit dieser Option können Sie nicht mehr die Reihenfolge bestimmen, in der die Nachrichten verarbeitet werden. Das liegt daran, dass bei mehreren aktiven Kopien eines Nachrichtenflusses in einem Broker, jede Kopie eine Nachricht von der gleichen Warteschlange zur selben Zeit verarbeiten kann. Die zur Verarbeitung einer Nachricht notwendige Zeit kann unterschiedlich sein, deshalb können mehrere Nachrichtenflüsse, die auf die selbe Warteschlange zugreifen, die Nachrichten in beliebiger Reihenfolge aus der Eingabequelle lesen. Die Reihenfolge der von den Nachrichtenflüssen produzierten Nachrichten muss nicht der Reihenfolge der ursprünglichen Nachrichten entsprechen.
Vergewissern Sie sich, dass die Anwendungen, die Nachrichten von diesen Nachrichtenflüssen empfangen, nicht sortierte Nachrichten akzeptieren.
Die zwei folgenden Beispiele zeigen, wann Sie am besten einen Nachrichtenfluss teilen:
Sie müssten außerdem eine weitere Eingabewarteschlange und einen Empfangsknoten bereitstellen, um allgemeine Verarbeitungen, an die sich die Label-Verzweigungen nach der eindeutigen Verarbeitung anbinden, beenden zu können.
Nachdem Sie den ursprünglichen Nachrichtenfluss geändert haben, um die Größe der Eingabenachricht zu überprüfen und die großen Nachrichten umzuleiten, können Sie auch einen neuen Nachrichtenfluss erstellen, der die Funktion dieses ursprünglichen Nachrichtenflusses repliziert (aber nur große Nachrichten verarbeitet, die ihm sofort vom ursprünglichen Nachrichtenfluss weitergegeben werden).
Die folgenden Eigenschaften steuern die Häufigkeit, mit der der Nachrichtenfluss Transaktionen festschreibt: