SqlConnection.EnlistDistributedTransaction(ITransaction) メソッド

定義

分散トランザクションとして指定したトランザクションに参加します。

public:
 void EnlistDistributedTransaction(System::EnterpriseServices::ITransaction ^ transaction);
public void EnlistDistributedTransaction (System.EnterpriseServices.ITransaction transaction);
member this.EnlistDistributedTransaction : System.EnterpriseServices.ITransaction -> unit
Public Sub EnlistDistributedTransaction (transaction As ITransaction)

パラメーター

transaction
ITransaction

登録先の既存の ITransaction への参照。

注釈

このメソッドを EnlistTransaction 使用して、分散トランザクションに参加できます。 EnlistTransaction はインスタンスに接続を参加させるのでTransaction、分散トランザクションを管理するために名前空間でSystem.Transactions使用できる機能を利用するため、この目的のために EnlistDistributedTransaction を使用 することをお勧めします。 詳細については、分散トランザクションに関する記事を参照してください。

自動参加が無効になっている場合は、 EnlistDistributedTransaction メソッドを使用して、既存の分散トランザクションに引き続き参加できます。 既存の分散トランザクションに参加すると、トランザクションがコミットまたはロールバックされた場合、データ ソースのコードによる変更もコミットまたはロールバックされます。

EnlistDistributedTransactionを使用してBeginTransactionトランザクションを既にSqlConnection開始している場合は、例外を返します。 ただし、トランザクションがデータ ソースで開始されたローカル トランザクションである場合 (たとえば、オブジェクトを使用して SqlCommand BEGIN TRANSACTION ステートメントを明示的に実行するなど)、 EnlistDistributedTransaction はローカル トランザクションをロールバックし、要求に応じて既存の分散トランザクションに参加します。 ローカル トランザクションがロールバックされたこと、および使用 BeginTransactionを開始していないローカル トランザクションを管理する責任があることを示す通知を受け取りません。

適用対象

こちらもご覧ください