Nachrichtenflusstransaktionen

Es gibt die folgenden beiden Nachrichtenfluss-Stile:
Koordinierte Nachrichtenflüsse
Diese stellen sicher, dass alle Ressourcenaktualisierungen gemeinsam mit einer einzigen Transaktion festgeschrieben oder zurückgesetzt werden.
Nicht koordinierte Nachrichtenflüsse
Diese ermöglichen das unabhängige Auftreten von Ressourcenaktualisierungen. Die Aktualisierungen sind nicht von dem gesamten Erfolg oder Fehlschlag des Nachrichtenflusses betroffen.

Koordinierte Nachrichtenflüsse

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.

Die Aktualisierungen durch einen koordinierten Nachrichtenfluss werden festgeschrieben, sobald die Verarbeitung der Eingabenachricht erfolgreich vom Nachrichtenfluss abgeschlossen wurde. Die Aktualisierungen werden zurückgesetzt, wenn die folgenden Bedingungen erfüllt sind:
  • Ein beliebiger Knoten innerhalb des Nachrichtenflusses löst eine Ausnahmebedingung aus, die von keinem Knoten außer dem Empfangsknoten abgefangen wird
  • Es besteht keine Verbindung zum Catch-Terminal des Empfangsknotens

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.

Nicht koordinierte Nachrichtenflüsse

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.

Das folgende Beispiel veranschaulicht den Einsatz von global koordinierten Transaktionen und zeigt, wie der Nachrichtenfluss jeweils anders reagiert, je nachdem, ob die Datenbankaktualisierungen koordiniert werden (Hauptnachrichtenfluss) oder nicht (Fehlernachrichtenfluss). Sie können Beispiele nur anzeigen, wenn Sie das Information Center verwenden, das im Message Brokers Toolkit integriert ist.
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Zugehörige Tasks
Nachrichtenflüsse erstellen
Nachrichtenflussinhalte definieren
Global koordinierte Nachrichtenflüsse konfigurieren
Fehler in Nachrichtenflüssen behandeln
Zugehörige Verweise
Integrierte Knoten
Datenbankverbindungen für koordinierte Nachrichtenflüsse
Datenbankunterstützung für koordinierte Nachrichtenflüsse
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:28:05

ac00645_