Ein Nachrichtenfluss, der Interaktionen mit einer externen Datenbank oder anderen wiederherstellbaren Ressourcen einschließt, kann so konfiguriert werden, dass seine gesamte Verarbeitung innerhalb einer Transaktion koordiniert wird. Durch diese Koordination wird sichergestellt, dass die gesamte Verarbeitung entweder erfolgreich oder überhaupt nicht abgeschlossen wird. Die Transaktion wird festgeschrieben (wenn die gesamte Verarbeitung erfolgreich ist) oder zurückgegeben (wenn mindestens ein Teil der Verarbeitung nicht erfolgreich ist). Dadurch können alle betroffenen Ressourcen (Warteschlangen, Datenbanken usw.) einen durchgängigen Zustand beibehalten, und die Datenintegrität ist gewahrt.
Zur Konfiguration eines koordinierten Nachrichtenflusses müssen Sie die Eigenschaft Coordinated (Koordiniert) des Nachrichtenflusses festlegen.
Für einige Empfangsknoten (z. B. MQInputsknoten oder SCADAInputsknoten) kann die Eigenschaft Transaktionsmodus im Nachrichtenfluss auf Automatisch gesetzt werden. Durch die Option Automatisch werden Nachrichten ein Teil der globalen Transaktion, und der Nachrichtenfluss wird als transaktionsorientiert (wenn die Nachricht persistent ist) oder als nicht koordiniert (wenn die Eingabenachricht nicht persistent ist) gekennzeichnet. Wenn der Nachrichtenfluss durch den Empfangsknoten als transaktionsorientiert gekennzeichnet wurde, werden die nachfolgenden Knoten im Nachrichtenfluss, durch die die Eigenschaft Transaktionsmodus auf Automatisch gesetzt wurde, in die globale Transaktion eingeschlossen.
Die Transaktionskoordination von Nachrichtenflüssen wird auf verteilten Systemen von WebSphere MQ, und auf z/OS-Systemen von RRS bereitgestellt. Nachrichtenflüsse werden unter z/OS immer global koordiniert, unabhängig davon, ob die Eigenschaft Coordinated (Koordiniert) des Nachrichtenflusses aktiviert oder inaktiviert ist.
Bei nicht koordinierten Nachrichtenflüssen wurde die Eigenschaft Coordinated (Koordiniert) nicht festgelegt. Aktualisierungen an Ressourcen, die von einem nicht koordinierten Nachrichtenfluss verwendet werden, werden von den verschiedenen Ressourcenmanagern verwaltet. Einige Ressourcenmanager (z. B. von WebSphere MQ) ermöglichen nicht transaktionsorientierte Aktualisierungen oder Aktualisierungen als Teil einer ressourcenspezifischen Transaktion. Andere Ressourcenmanager, wie beispielsweise Datenbankmanager, verwenden immer eine ressourcenspezifische Transaktion. Eine ressourcenspezifische Transaktion beschränkt sich auf Ressourcen, die einem einzelnen Ressourcenmanager zugeordnet sind, beispielsweise einen Datenbank- oder Warteschlangenmanager.
Ressourcenspezifische Transaktionen werden normalerweise nur dann verwendet, wenn in einem Nachrichtenfluss nur ein Typ einer wiederherstellbaren Ressource verwendet wird. Ein Beispiel dafür ist ein Nachrichtenfluss, der einen MQInputsknoten und einen MQOutputknoten enthält, der jedoch nicht auf Datenbanken zugreift. Ressourcenspezifische Transaktionen sollten nicht verwendet werden, wenn mehrere Ressourcen verwendet werden und die Datenintegrität verwaltet werden muss.
Aktualisierungen einer Ressource, auf die nicht transaktionsorientiert zugegriffen wird, werden sofort festgeschrieben. Durch einen MQInputsknoten, der als nicht transaktionsorientierter Knoten konfiguriert wurde, werden Nachrichten sofort aus der Warteschlange entfernt; die Nachrichten gehen beim Fehlschlagen des Nachrichtenflusses verloren.
Setzen Sie die Eigenschaft Transaktionsmodus auf Automatisch, damit einige Empfangsknoten (z. B. MQInputsknoten oder SCADAInputsknoten) je nach Persistenz der Eingabenachricht Teil einer Transaktion sind. Bei einer persistenten Eingabenachricht werden Nachrichten Teil der Transaktion, und der Nachrichtenfluss wird als transaktionsorientiert gekennzeichnet. Bei einer nicht persistenten Nachricht wird der Nachrichtenfluss als nicht transaktionsorientiert gekennzeichnet.