トランザクション境界
トランザクション境界は、トランザクションのスコープを定義します。トランザクション境界の内側のオブジェクトは、共通のトランザクション ID を共有します。
トランザクションの実行時には、トランザクションに関与する各種のリソースがそのトランザクションに参加します。たとえば、トランザクションのスコープ内でアプリケーションがデータベースに接続する場合、そのトランザクションはそのリソースにフローし、データベース サーバーが含まれるようにトランザクション境界を拡張します。複数のプロセスやコンピュータにまたがって処理するトランザクションをデザインできます。つまり、トランザクション境界は、プロセス境界とコンピュータ境界にまたがって一貫性を管理するための抽象的な概念です。
トランザクション境界の制御は、アプリケーションに対して選択するトランザクション モデルが手動か自動かによって異なります。手動トランザクションでは、トランザクションを開始および終了させるための明示的な命令によって、トランザクション境界を制御します。1 つのトランザクション境界の中から、2 番目のトランザクション (入れ子になったトランザクション) を開始できます。この場合、親トランザクションは、下位のトランザクションのすべてがコミットするまでコミットしません。
自動トランザクションでは、各コンポーネントの宣言属性に基づいて、自動的にトランザクション境界が管理されます。トランザクションは、トランザクションに参加するように命令されたオブジェクトまで自動的にフローし、トランザクションの外側で実行されるように命令されたオブジェクトをバイパスします。自動トランザクション モデルを使用するときは、トランザクションを入れ子にできません。