다음을 통해 공유


IEnlistmentNotification.Commit(Enlistment) 메서드

정의

참여한 개체에게 트랜잭션이 커밋 중임을 알립니다.

public:
 void Commit(System::Transactions::Enlistment ^ enlistment);
public void Commit (System.Transactions.Enlistment enlistment);
abstract member Commit : System.Transactions.Enlistment -> unit
Public Sub Commit (enlistment As Enlistment)

매개 변수

enlistment
Enlistment

트랜잭션 관리자에게 응답을 보내는 데 사용되는 Enlistment 개체입니다.

설명

트랜잭션 관리자는 모든 참가자에게 트랜잭션 커밋을 지시할 때 약정의 두 번째 단계에서 인리스트먼트된 개체의 이 메서드를 호출합니다.

리소스 관리자는 트랜잭션을 완료하는 데 필요한 모든 작업을 수행한 다음, 매개 변수에서 메서드를 호출 Done 하여 완료되었음을 TM에 enlistment 알려야 합니다.

리소스 관리자가 지속적으로 참여했지만 메서드를 호출 Done 하여 응답하지 않는 경우 트랜잭션 관리자는 리소스 관리자가 전화를 받았는지 Commit 확실하지 않습니다. 따라서 트랜잭션 관리자는 응답을 계속 대기하고 이 트랜잭션과 관련된 정보를 유지 관리합니다. 호출되지 않는 경우 Done 이 정보는 메모리 또는 시스템 전체 리소스에서 무기한 유지됩니다. 이로 인해 리소스를 회수할 수 없게 됩니다. 분산 트랜잭션의 경우 결국 MSDTC 프로세스를 중지하는 MSDTC 로그를 채울 수 있습니다. 관리되는 System.Transactions트랜잭션의 경우 리소스 관리자 프로세스의 메모리 사용량이 점진적이고 지속적으로 증가합니다. 따라서 리소스 관리자가 준비 작업으로 완료되면 메서드를 호출 Done 하는 것이 중요합니다.

적용 대상