InstancePersistenceContext.BeginBindReclaimedLock 메서드

정의

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

public:
 IAsyncResult ^ BeginBindReclaimedLock(long instanceVersion, TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginBindReclaimedLock(long instanceVersion, TimeSpan timeout, AsyncCallback callback, object state);
member this.BeginBindReclaimedLock : int64 * TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginBindReclaimedLock (instanceVersion As Long, timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

매개 변수

instanceVersion
Int64

인스턴스에 보관된 잠금의 버전이거나, 지속성 공급자가 잠금 버전을 구현하지 않는 경우 0입니다.

timeout
TimeSpan

비동기 작업의 시간 제한 기간입니다.

callback
AsyncCallback

작업이 완료될 때 호출할 메서드입니다.

state
Object

비동기 작업과 관련된 상태 정보입니다.

반품

비동기 작업의 상태입니다.

설명

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

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

잠금이 핸들에 바인딩되면 핸들의 수명 동안 바인딩된 상태로 유지됩니다. 잠금 토큰이나 인스턴스 버전을 변경할 수 없습니다.

적용 대상