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

整合されたメッセージ・フローとは、外部および内部リソースへの更新が単一のトランザクション内でともにコミットまたはロールバックされるメッセージ・フローのことです。

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

メッセージ・フローの処理を整合させたい場合には、メッセージが入力ノードによって受信されるときにトランザクションを開始するように構成します。 トランザクションは、コミット (すべての処理が成功した場合) またはロールバック (少なくとも処理の一部が成功しない場合) されます。

メッセージ・フローの調整は、分散プラットフォーム上では WebSphere MQ によって、 z/OS システム上では RRS によって提供されます。外部から整合された作業単位 (たとえば、CICS によって整合されたトランザクション) は、サポートされません。

WebSphere Business Integration Message Broker はいくつかの方法で、トランザクション整合性を提供します。

メッセージ・フロー中にエラーが発生した場合には、まず最初にデータベースが、 次いで WebSphere MQ リソースがロールバックされます。エラーが発生しなかった場合には、まず最初にデータベースが、次いで WebSphere MQ リソースがコミットされます。メッセージ・フローのコミット中にエラーが発生し、かつ非 XA データベースが関係している場合には、 次のように処理されます。

望むならば、メッセージ・フローの振る舞いを、非トランザクションになるよう構成することもできます。

z/OS の場合、 メッセージ・フローは常にリソース・リカバリー・サービス (RRS) によって整合されます。z/OS の場合、 メッセージ・フローは、ワークベンチで整合として指定されているかどうかに関係なく、 常に整合されます。

エラー・ハンドラーのサンプルは、 グローバルに整合されたトランザクションの使用法を示すとともに、 データベース更新が整合された場合のメッセージ・フロー (メイン・フロー) と、 整合されない場合のメッセージ・フロー (エラー・フロー) の相違を示します。

関連概念
メッセージ・フロー

関連タスク
メッセージ・フローの作成
メッセージ・フローの内容の定義
整合されたメッセージ・フローの構成
メッセージ・フローのエラー処理

関連資料
組み込みノード
整合されたメッセージ・フローのデータベース接続
整合されたメッセージ・フローのデータベース・サポート