다음을 통해 공유


OdbcConnection.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에 대한 참조입니다.

설명

ADO.NET 2.0의 새로운 기능은 메서드를 EnlistTransaction 사용하여 분산 트랜잭션에 참여하도록 지원하는 것입니다. instance 연결을 Transaction 등록하기 때문에 EnlistTransaction은 분산 트랜잭션을 관리하기 위해 네임스페이스에서 사용할 수 있는 System.Transactions 기능을 활용하므로 이 목적을 위해 EnlistDistributedTransaction보다 좋습니다. 자세한 내용은 분산 트랜잭션을 참조하세요.

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

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

적용 대상