メッセージ・フローのトランザクション

メッセージ・フローは、次の 2 つのスタイルのいずれかを取ることができます。
整合されたメッセージ・フロー
これらは、リソースに対するすべての更新が単一トランザクション内で一緒にコミットまたはロールバックされるようにします。
非整合メッセージ・フロー
これらは、リソースに対する更新が別個に行われるようにします。更新はメッセージ・フローの全体的な成功または失敗の影響を受けません。

整合されたメッセージ・フロー

外部データベースまたはその他のリカバリー可能リソースとの対話を含むメッセージ・フローは、そのすべての処理が 1 つのグローバルなトランザクション内で整合されるように構成することができます。この整合によって、すべての処理が正常に完了されるか、処理がまったく実行されないかのいずれかになります。 トランザクションは、コミット (すべての処理が成功した場合) またはロールバック (少なくとも処理の一部が成功しない場合) されます。 したがって、影響を受けるすべてのリソース (キュー、データベースなど) は、整合した状態を維持し、データ整合性が保たれます。

整合メッセージ・フローによって行われる更新は、フローが入力メッセージを正常に処理したときにコミットされます。 次の条件が両方とも満たされた場合に更新はバックアウトされます。
  • フロー内の任意のノードが例外をスローし、それが入力ノード以外のノードにキャッチされない場合。
  • 入力ノードの Catch ターミナルが接続されていない場合。

整合済みとしてメッセージ・フローを構成するには、メッセージ・フローで「整合」プロパティーを設定します。

MQInput、または SCADAInput ノードなど、一部の入力ノードでは、フローのノードの「トランザクション・モード」プロパティーを「自動」に設定します。 「自動」オプションは、メッセージをグローバル・トランザクションの一部とし、入力メッセージが持続する場合にはメッセージ・フローをトランザクションとして、持続しない場合には非整合としてマークします。入力ノードによってフローがトランザクションとマークされた場合、トランザクション・モード・プロパティーを「自動」に設定するフローの後続のノードはグローバル・トランザクションに組み込まれます。

メッセージ・フローのトランザクション調整は、分散システムでは WebSphere® MQ によって、z/OS® システムでは RRS によって提供されます。z/OS の場合、メッセージ・フローの「整合」プロパティーの設定に関係なく、常にグローバルに整合されます。

非整合メッセージ・フロー

非整合フローは、「整合」プロパティーが設定されていないフローです。 非整合フローによって使用されるリソースに対する更新は、個々のリソース・マネージャーによって管理されます。 リソース・マネージャーの中には、更新を非トランザクションとして、またはリソース固有のトランザクションの一部として行えるものがあります (例えば WebSphere MQ など)。 また、常にリソース固有のトランザクションを使用するリソース・マネージャーもあります (例えばデータベース・マネージャー)。 リソース固有のトランザクションは、単一のリソース・マネージャー (例えばデータベース・マネージャーまたはキュー・マネージャーなど) によって所有されるリソースにその有効範囲が限られています。

リソース固有のトランザクションは通常、フロー内で 1 つのタイプのリカバリー可能リソースしか使用されていない場合に使用されます。MQInput および MQOutput ノードが含まれているものの、どのデータベースにもアクセスしないようなフローはその一例です。複数のリソースが存在し、データ保全性を維持しなければならない場合には、リソース固有のトランザクションを使用してはなりません。

非トランザクションとしてアクセスされるリソースに対する更新は、即時にコミットされます。非トランザクションとなるように構成されている MQInput ノードは、キューからメッセージを即時に除去し、フローが失敗するとメッセージは失われます。

「トランザクション・モード」プロパティーを「自動」に設定することにより、一部の入力ノード (例えば MQInput、または SCADAInput ノード) をトランザクションの一部とすることができます (入力メッセージの持続性に依存する)。 入力メッセージが持続的なものである場合、メッセージはトランザクションの一部となり、フローはトランザクションとしてマークされます。メッセージが持続的なものでない場合は、フローは非トランザクションとしてマークされます。

次のサンプルは、グローバルに整合されたトランザクションの使用法を示すとともに、データベース更新が整合された場合のメッセージ・フロー (メイン・フロー) と、整合されない場合のメッセージ・フロー (エラー・フロー) の相違を示します。 サンプルは、Message Brokers Toolkit と統合されているインフォメーション・センターを使用する場合にのみ表示できます。
関連概念
メッセージ・フローの概要
関連タスク
メッセージ・フローの作成
メッセージ・フローの内容の定義
グローバルに整合されたメッセージ・フローの構成
メッセージ・フローのエラー処理
関連資料
組み込みノード
整合されたメッセージ・フローのデータベース接続
整合されたメッセージ・フローのデータベース・サポート
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:42:37

ac00645_