トランザクション・モデル

このセクションでは、IBM WebSphere InterChange Server トランザクション・モデルの基礎となる概念について簡単に説明します。データベースおよびトランザクション処理についての知識をお持ちの方は、次のセクションに進んでください。

トランザクションは、作業論理単位を形成する、関連のある相互依存ステップの集合です。複数のステップを 1 つのトランザクションにグループ化することによって、ステップの集合全体が成功するときも失敗するときも、ステップの集合が 1 つのアトミック単位として処理されます。

図 38 に、update 1 と update 2 の 2 つの更新を含むデータベース・トランザクションを示します。

図 38. データベース・トランザクション


トランザクションが実行されているとき、トランザクションは変更中のデータベースをロックして、他のトランザクションが変更のためにそのデータを使用できないようにします。外部の干渉からデータを分離することは、トランザクションに特有の性質の 1 つです。

トランザクションの操作が成功した場合は、コミット操作で変更内容をディスクに書き込むことによりトランザクションが完了します。コミット操作はトランザクションのロックを解除し、他のトランザクションが更新済みのデータを使用できるようにします。

実行途中でエラーが発生した場合、トランザクション全体の成功は不可能になり、トランザクション全体が失敗します。トランザクションはデータベースに部分的な結果を残すのではなく、すでに実行された変更をバックアウトして、データベースをトランザクションが開始する前の値に戻します。このバックアウト・プロセスは、ロールバックと呼ばれます。

もう 1 つのタイプのデータベース・トランザクションは 2 フェーズ・コミットで、複数のデータベース上での分散使用に適しています。2 フェーズ・コミットはトランザクション・モニターを使用して、並行更新を調整します。トランザクション・モニターは、最初にすべてのデータベースが必要な変更を実行できるかどうかチェックします。すべてのデータベースが変更を実行できるとしても、トランザクション・モニターのシグナルがそれを表示するまで待機する必要があります。変更を実行できないデータベースが 1 つでもある場合は、変更はまったく実行されません。

すべてのトランザクションはデータベース内でデータの整合性を維持する必要がありますが、2 フェーズ・コミット・プロトコルは個々のデータベースを越えてこの要件の範囲を拡張します。一般的な例は資金の送金です。この場合、トランザクション・モニターは、あるアカウントから引き出された資金が他のアカウントに振り込まれたか、またはどちらのアカウントも変更されていないことを確認します。

Copyright IBM Corp. 1997, 2004