InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) Methode

Definition

Bindet eine vorhandene Sperre auf einer Instanz an das aktuelle Instanzhandle. Die Version der vorhandenen Sperre wird als Parameter übergeben.

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)

Parameter

instanceVersion
Int64

Version der Sperre, die für die Instanz gehalten wird, oder 0 (null), wenn der Persistenzanbieter keine Sperrversionen implementiert.

timeout
TimeSpan

Der Timeoutwert für den Vorgang.

Hinweise

Beim Versuch, eine Sperre festzulegen, kann der Persistenzanbieter entscheiden, dass die aktuelle Instanz bereits im aktuellen Speicher gesperrt ist. Wenn das Sperrtoken mit dem Sperrtoken des aktuellen Handles übereinstimmt, kann der Persistenzanbieter versuchen, die Sperre zurückzugeben, indem er seine Version überprüft und an BindReclaimedLock übergibt. Der Persistenzanbieter darf erst Änderungen an der Instanz vornehmen, wenn die Sperre erfolgreich freigegeben wurde. Wenn kein anderes Handle an die Sperre gebunden ist, kann BindReclaimedLock erfolgreich ausgeführt werden, und das aktuelle Handle wird an die Sperre gebunden. Andernfalls löst BindReclaimedLock die Ausnahme InstanceHandleConflictException aus. Wenn Befehle auf anderen Handles ausgeführt werden, blockiert BindReclaimedLock möglicherweise, um auf das Ergebnis dieser Befehle zu warten, bevor über die Freigabe der Sperre entschieden wird.

Das aktuelle Instanzhandle muss an einen Instanz- und einen Sperrbesitzer gebunden sein. Die Instanz darf nicht abgeschlossen sein. Das dem Sperrbesitzer zugeordnete Sperrtoken wird verwendet, um den Besitzer der Sperre zu identifizieren.

Sobald eine Sperre an ein Handle gebunden wird, bleibt diese für die Lebensdauer des Handles gebunden. Weder das Sperrtoken noch die Instanzversion kann geändert werden.

Gilt für: