Sdílet prostřednictvím


InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) Metoda

Definice

Vytvoří vazbu existujícího zámku instance na aktuální popisovač instance. Verze existujícího zámku se předá 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

Verze zámku uchovávaného v instanci nebo nula, pokud zprostředkovatel trvalosti neimplementuje verze zámku.

timeout
TimeSpan

Hodnota časového limitu operace.

Poznámky

Při pokusu o získání zámku může zprostředkovatel trvalosti rozhodnout, že aktuální instance je již uzamčena v aktuálním úložišti. Pokud token zámku odpovídá tokenu zámku aktuálního popisovače, pak se zprostředkovatel trvalosti může pokusit o uvolnění zámku kontrolou jeho verze a předáním bindReclaimedLock. Zprostředkovatel trvalosti nesmí provádět změny v instanci, dokud se zámek úspěšně neobsadí. Pokud není k zámku vázán žádný jiný popisovač, bindReclaimedLock bude úspěšný a aktuální popisovač se stane vázán na zámek. Jinak BindReclaimedLock vyvolá InstanceHandleConflictException. Pokud příkazy probíhají na jiných popisovačích, bindReclaimedLock může blokovat čekání na výsledek těchto příkazů před rozhodnutím, zda lze zámek uvolnit.

Popisovač aktuální instance musí být vázán na instanci a vlastníka zámku. Instance nesmí být dokončena. Token zámku přidružený k vlastníkovi zámku se používá k identifikaci vlastníka zámku.

Jakmile je zámek svázán s úchytem, zůstává vázán po celou dobu životnosti úchytu. Token zámku ani verzi instance nelze změnit.

Platí pro