InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
인스턴스의 기존 잠금을 현재 인스턴스 핸들에 바인딩합니다. 기존 잠금의 버전은 매개 변수로 전달됩니다.
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은 잠금을 회수할 수 있는지 여부를 결정하기 전에 해당 명령의 결과를 기다리는 것을 차단할 수 있습니다.
현재 인스턴스 핸들은 인스턴스 및 잠금 소유자에 바인딩되어야 합니다. 인스턴스를 완료하면 안 됩니다. 잠금 소유자와 연결된 잠금 토큰은 잠금 소유자를 식별하는 데 사용됩니다.
잠금이 핸들에 바인딩되면 핸들의 수명 동안 바인딩된 상태로 유지됩니다. 잠금 토큰이나 인스턴스 버전을 변경할 수 없습니다.