다음을 통해 공유


InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) 메서드

정의

인스턴스의 기존 잠금을 현재 인스턴스 핸들에 바인딩합니다. 기존 잠금의 버전은 매개 변수로 전달됩니다.

public:
 void BindReclaimedLock(long instanceVersion, TimeSpan timeout);
public void BindReclaimedLock (long instanceVersion, TimeSpan timeout);
member this.BindReclaimedLock : int64 * TimeSpan -> unit
Public Sub BindReclaimedLock (instanceVersion As Long, timeout As TimeSpan)

매개 변수

instanceVersion
Int64

인스턴스에서 보유하고 있는 잠금의 버전 또는 0(지속성 공급자가 잠금 버전을 구현하지 않는 경우)입니다.

timeout
TimeSpan

작업의 시간 제한 값입니다.

설명

잠금을 획득하려고 할 때 지속성 공급자는 현재 인스턴스가 현재 저장소에서 이미 잠겨 있다고 결정할 수 있습니다. 잠금 토큰이 현재 핸들의 잠금 토큰이 일치 하는 경우 지 속성 공급자는 해당 버전을 검사 하 고 BindReclaimedLock으로 전달 하 여 잠금을 회수할 시도할 수 있습니다. 지속성 공급자는 잠금이 회수될 때까지 인스턴스를 변경하면 안 됩니다. 다른 핸들이 잠금에 바인딩되어 있지 않으면 BindReclaimedLock이 성공하고 현재 핸들이 잠금에 바인딩됩니다. 그렇지 않으면 BindReclaimedLock이 InstanceHandleConflictException을 throw합니다. 다른 핸들에서 명령이 진행 중이면 해당 명령의 결과를 통해 잠금의 회수 가능 여부가 결정될 때까지 기다리는 동안 BindReclaimedLock이 차단될 수 있습니다.

현재 인스턴스 핸들이 인스턴스와 잠금 소유자에 바인딩되어 있어야 합니다. 인스턴스는 완료된 상태가 아니어야 합니다. 잠금 소유자에 연결된 잠금 토큰은 잠금의 소유자를 식별하는 데 사용됩니다.

잠금이 핸들에 바인딩되면 핸들의 수명 동안 바인딩 상태가 유지됩니다. 잠금 토큰이나 인스턴스 버전 중 어느 항목도 변경할 수 없습니다.

적용 대상