IEnlistmentNotification.Prepare(PreparingEnlistment) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
트랜잭션이 커밋 준비 중임을 참여한 개체에게 알립니다.
public:
void Prepare(System::Transactions::PreparingEnlistment ^ preparingEnlistment);
public void Prepare (System.Transactions.PreparingEnlistment preparingEnlistment);
abstract member Prepare : System.Transactions.PreparingEnlistment -> unit
Public Sub Prepare (preparingEnlistment As PreparingEnlistment)
매개 변수
- preparingEnlistment
- PreparingEnlistment
트랜잭션 관리자에게 응답을 보내는 데 사용되는 PreparingEnlistment 개체입니다.
설명
트랜잭션 관리자는 참가자에게 트랜잭션을 커밋할 수 있는지 여부를 묻는 약정 1단계 동안 참여 리소스 관리자의 이 메서드를 호출합니다.
지속성 리소스 관리자를 구현하는 경우 이 단계에서 준비 레코드를 기록해야 합니다. 레코드에는 복구를 수행하는 데 필요한 모든 정보가 포함되어야 합니다. 여기에는 복구 중에 메서드의 트랜잭션 관리자에게 전달되는 속성이 Reenlist 포함 RecoveryInformation 됩니다. 복구에 대한 자세한 내용은 복구 수행을 참조하세요.
리소스 관리자는 매개 변수의 preparingEnlistment
메서드를 호출 Prepared 하여 약정에 대한 투표를 나타내기 전에 완료해야 하는 모든 작업을 완료해야 합니다. 커밋, 롤백 또는 의심과 같은 2단계 알림을 받기 전에 이 작업이 수행되었는지 확인해야 합니다. 이는 2단계 알림이 1단계에서 메서드를 호출 Prepared 한 동일한 스레드에서 인라인으로 발생할 수 있기 때문입니다. 따라서 2단계 알림을 받기 전에 완료될 것으로 예상되는 호출(예: 잠금 해제) 후에 Prepared 작업을 수행하면 안 됩니다.
또한 매개 변수의 메서드를 preparingEnlistment
호출하여 롤백에 대한 투표를 나타낼 수도 있습니다.
개체가 트랜잭션 진행 상황을 관찰하고 이에 반응하도록 하려면 이 메서드의 구현에서 작업을 완료할 때 매개 변수의 preparingEnlistment
메서드를 호출 Done 해야 합니다. 이렇게 하면 리소스 관리자가 2단계 알림을 받지 못합니다.