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 사용하여 분산 트랜잭션에 등록할 수 있습니다. instance 연결을 Transaction 등록하기 때문에 EnlistTransaction은 분산 트랜잭션을 관리하기 위해 네임스페이스에서 사용할 수 있는 System.Transactions 기능을 활용하므로 이 목적을 위해 EnlistDistributedTransaction보다 선호됩니다. 자세한 내용은 분산 트랜잭션을 참조하세요.

자동 인리스트먼트를 사용하지 않도록 설정한 경우 EnlistDistributedTransaction 메서드를 사용하여 기존 분산 트랜잭션에 계속 등록할 수 있습니다. 기존 분산 트랜잭션에 등록하면 트랜잭션이 커밋되거나 롤백되는 경우 데이터 원본의 코드에서 수정한 내용도 커밋되거나 롤백됩니다.

EnlistDistributedTransaction는 를 사용하여 BeginTransaction트랜잭션을 SqlConnection 이미 시작한 경우 예외를 반환합니다. 그러나 트랜잭션이 데이터 원본에서 시작된 로컬 트랜잭션인 경우(예: 개체를 사용하여 SqlCommand BEGIN TRANSACTION 문을 명시적으로 실행) EnlistDistributedTransaction 은 로컬 트랜잭션을 롤백하고 요청된 대로 기존 분산 트랜잭션에 참여합니다. 로컬 트랜잭션이 롤백되었다는 알림을 받지 못하며 를 사용하여 BeginTransaction시작되지 않은 로컬 트랜잭션을 관리할 책임이 있습니다.

적용 대상

추가 정보