Ein Nachrichtenfluss wird in einer einzelnen Transaktion ausgeführt, die gestartet wird, wenn ein Empfangsknoten Daten empfängt, und festgeschrieben oder zurückgesetzt werden kann, sobald alle Verarbeitungsschritte beendet sind.
Wie einzelne Knoten und der Nachrichtenfluss selbst an Transaktionen teilnehmen, hängt davon ab, wie Sie den Nachrichtenfluss entwerfen und entwickeln, sowie von der Intensität der zusätzlichen Konfiguration:
Nach Abschluss der Entwurfs- und Entwicklungsphase des Nachrichtenflusses können Sie die BAR-Datei in dem Broker oder den Brokern implementieren, auf dem bzw. denen der Nachrichtenfluss ausgeführt werden soll. Wenn Sie Ihre Nachrichtenflüsse jedoch für global koordinierte Transaktionen konfiguriert haben, ist möglicherweise eine weitere Konfiguration erforderlich. Vor der Ausführung des Nachrichtenflusses müssen Sie oder Ihr Systemadministrator sicherstellen, dass die Brokerumgebung, der Transaktionsmanager und die mitwirkenden Ressourcenmanager alle ordnungsgemäß für die Unterstützung von koordinierten Transaktionen konfiguriert sind. Informationen zu den möglichen Anforderungen finden Sie unter Globale Koordination von Transaktionen konfigurieren (zweiphasiges Commit).
Wenn die Brokerumgebung, der Transaktionsmanager und die Manager für externe Ressourcen nicht ordnungsgemäß für die globale Koordination konfiguriert sind, werden die Nachrichtenflusstransaktionen nicht global koordiniert.
Sie können die Knoten in einem Nachrichtenfluss konfigurieren, um die Art und Weise festzulegen, wie die von jedem einzelnen Knoten ausgeführte Verarbeitung an der Nachrichtenflusstransaktion mitwirkt. Die meisten Knoten, für die Transaktionalität relevant ist, besitzen eine oder mehrere Eigenschaften, die Sie konfigurieren können, um das Verhalten der Knoten zu bestimmen. Daher können Sie für jeden einzelnen Knoten entscheiden, ob er an der Nachrichtenflusstransaktion mitwirkt oder ob er unabhängig agiert. Üblicherweise beinhalten diese Eigenschaften die Option Automatisch, sodass nachfolgende Knoten im Nachrichtenfluss die vom Empfangsknoten festgelegten Merkmale annehmen.
Knoten, die Transportmethoden unterstützen, die nicht an Transaktionen mitwirken können, besitzen möglicherweise andere Eigenschaften, um festzulegen, was der Broker tun soll, wenn ein Nachrichtenflussfehler auftritt. Beispielsweise besitzt der Knoten FileInput mehrere Retry-Eigenschaften (für Wiederholungen bzw. Neuversuche), über die Sie das Verhalten bei einem Fehler steuern können.
Einige Knoten, die mit externen Ressourcen interagieren, stellen keine Eigenschaften bereit. Diese Knoten sind normalerweise in die Nachrichtenflusstransaktionen integriert, wobei es jedoch Ausnahmen gibt. Deshalb müssen Sie für jeden Knoten, den Sie in einen Nachrichtenfluss aufnehmen, den zugehörigen Abschnitt für die Eigenschaften überprüfen, damit Sie wissen, welche Aktion der Knoten ausführt.
Wenn Sie einen Knoten so konfigurieren, dass er nicht an der Nachrichtenflusstransaktion mitwirkt, werden die ausgeführten Aktionen festgeschrieben bzw. zurückgesetzt, wenn der Knoten existiert. Wenn der Nachrichtenfluss selbst beendet wird, werden keine weiteren Aktionen ausgeführt.
So konfigurieren Sie das Nachrichtenflussverhalten durch die Festlegung von Knoteneigenschaften:
Nachdem Sie einen Nachrichtenfluss konfiguriert haben, müssen Sie ihn zu einer BAR-Datei hinzufügen, damit Sie ihn implementieren können. Beim Hinzufügen zu einer BAR-Datei wird der Nachrichtenfluss kompiliert und es können zusätzliche Eigenschaften konfiguriert werden.
Die wichtigste Eigenschaft in Bezug auf Transaktionen auf verteilten Systemen ist Koordinierte Transaktion. Diese Eigenschaft ist standardmäßig deaktiviert (nicht ausgewählt), d. h., der Nachrichtenfluss wird teilweise koordiniert und der Broker schreibt die Nachrichtenflusstransaktion fest oder setzt sie zurück. Wenn Sie die Eigenschaft aktivieren, ruft der Empfangsknoten den externen Transaktionsmanager WebSphere MQ zum Festschreiben und Zurücksetzen der Verarbeitung auf.
Diese Eigenschaft wird ignoriert, wenn der Nachrichtenfluss in einem Broker implementiert wird, der auf einem z/OS-System ausgeführt wird.
So konfigurieren Sie Nachrichtenflusseigenschaften: