InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) Метод

Определение

Привязывает существующую блокировку экземпляра к текущему дескриптору экземпляра. Версия существующей блокировки передается в качестве параметра.

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

Версия блокировки, удерживаемой на экземпляре, или ноль, если поставщик сохраняемости не реализует версии блокировки.

timeout
TimeSpan

Значение времени ожидания для операции.

Комментарии

При попытке получить блокировку поставщик сохраняемости может решить, что текущий экземпляр уже заблокирован в текущем хранилище. Если маркер блокировки соответствует маркеру блокировки текущего дескриптора, поставщик сохраняемости может попытаться восстановить блокировку, проверив ее версию и передав ее в BindReclaimedLock. Поставщик сохраняемости не должен вносить изменения в экземпляр, пока блокировка не будет успешно восстановлена. Если другой дескриптор не привязан к блокировке, привязка BindReclaimedLock завершается успешно, а текущий дескриптор привязывается к блокировке. В противном случае BindReclaimedLock создает экземпляр InstanceHandleConflictException. Если команды выполняются в других дескрипторах, BindReclaimedLock может блокировать ожидание результатов этих команд перед решением о том, можно ли восстановить блокировку.

Текущий дескриптор экземпляра должен быть привязан к экземпляру и владельцу блокировки. Экземпляр не должен быть завершен. Маркер блокировки, связанный с владельцем блокировки, используется для идентификации владельца блокировки.

После привязки блокировки к дескриптору он остается привязанным к времени существования дескриптора. Ни маркер блокировки, ни версия экземпляра не могут быть изменены.

Применяется к