自動トランザクションと .NET Framework クラス

.NET Framework クラスのインスタンスは、自動トランザクションに参加できます。ただし、クラスをそのように設定した場合に限ります。クラス インスタンス、つまりオブジェクトによってアクセスされる各リソースは、トランザクションに参加します。たとえば、オブジェクトが ADO.NET を使用してデータベース内のアカウントに金額を転記する場合、データベースのリソース マネージャは、オブジェクトがトランザクション内で実行されるかどうか決定します。その場合、データベース マネージャはデータベースを自動的にトランザクションに参加させます。

オブジェクトをトランザクションに参加させるには、TransactionAttribute 属性をそのクラスに適用します。Transaction 属性を適用する際、Transaction、transaction、TransactionAttribute、および transactionattribute を交互に使用できます。

クラスを自動トランザクションに参加させるように設定する手順については、「方法 :.NET Framework クラスで自動トランザクションを使用する」を参照してください。

Transaction 属性では、TransactionOption 列挙体をパラメータとして取得するコンストラクタが使用されます。TransactionOption 列挙体に使用できる値を次の表に示します。

属性値 説明

Disabled

オブジェクト上の自動トランザクションの制御を削除します。この属性値が適用されたオブジェクトは、分散トランザクション コーディネータ (DTC: Distributed Transaction Coordinator) に直接接続し、トランザクションをサポートできます。

[Transaction(TransactionOption.Disabled)]

NotSupported

オブジェクトがトランザクションのスコープ内で実行されないことを示します。要求が処理される際、アクティブなトランザクションの有無にかかわらず、トランザクションなしでそのオブジェクト コンテキストが作成されます。

[Transaction(TransactionOption.NotSupported)]

Supported

オブジェクトが既存のトランザクションのコンテキスト内で実行されることを示します (既存のトランザクションが存在する場合)。トランザクションが存在しない場合は、オブジェクトはトランザクションなしで実行されます。

[Transaction(TransactionOption.Supported)]

Required

(既定値)

オブジェクトにはトランザクションが必要であることを示します。オブジェクトは、既存のトランザクションのスコープ内で実行されます (既存のトランザクションが存在する場合)。トランザクションが存在しない場合は、オブジェクトがトランザクションを開始します。

[Transaction(TransactionOption.Required)]

RequiresNew

オブジェクトにはトランザクションが必要であり、要求ごとに新しいトランザクションが開始されることを示します。

[Transaction(TransactionOption.RequiresNew)]

関連項目

タスク

方法 :.NET Framework クラスで自動トランザクションを使用する

概念

自動トランザクションにおけるコミットおよび中止

その他の技術情報

サービス コンポーネントの作成

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.