Udostępnij za pośrednictwem


InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) Metoda

Definicja

Wiąże istniejącą blokadę wystąpienia z bieżącym uchwytem wystąpienia. Wersja istniejącej blokady jest przekazywana jako parametr.

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)

Parametry

instanceVersion
Int64

Wersja blokady przechowywanej w wystąpieniu lub zero, jeśli dostawca trwałości nie implementuje wersji blokady.

timeout
TimeSpan

Wartość limitu czasu dla operacji.

Uwagi

Podczas próby uzyskania blokady dostawca trwałości może zdecydować, że bieżące wystąpienie jest już zablokowane w bieżącym magazynie. Jeśli token blokady jest zgodny z tokenem blokady bieżącego uchwytu, dostawca trwałości może próbować odzyskać blokadę, sprawdzając jego wersję i przekazując ją do bindReclaimedLock. Dostawca trwałości nie może wprowadzać zmian w wystąpieniu do momentu pomyślnego odzyskania blokady. Jeśli żadne inne uchwyty nie są powiązane z blokadą, funkcja BindReclaimedLock powiedzie się, a bieżący uchwyt zostanie powiązany z blokadą. W przeciwnym razie bindReclaimedLock zgłasza wyjątek InstanceHandleConflictException. Jeśli polecenia są w toku w innych uchwytach, BindReclaimedLock może zablokować oczekiwanie na wynik tych poleceń przed podjęciem decyzji, czy blokada może zostać odzyskana.

Bieżący uchwyt wystąpienia musi być powiązany z wystąpieniem i właścicielem blokady. Nie można ukończyć wystąpienia. Token blokady skojarzony z właścicielem blokady służy do identyfikowania właściciela blokady.

Gdy blokada jest powiązana z uchwytem, pozostaje powiązana przez cały okres istnienia uchwytu. Nie można zmienić ani tokenu blokady, ani wersji wystąpienia.

Dotyczy