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

インスタンスに保持されているロックのバージョン。永続化プロバイダーがロック バージョンを実装していない場合は 0。

timeout
TimeSpan

操作のタイムアウト値。

注釈

ロックを取得しようとすると、永続化プロバイダーは、現在のインスタンスが現在のストアで既にロックされていることを判断できます。 ロック トークンが現在のハンドルのロック トークンと一致する場合、永続化プロバイダーは、そのバージョンを調べて BindReclaimedLock に渡すことで、ロックの再利用を試みることができます。 永続化プロバイダーは、ロックが正常に再利用されるまで、インスタンスに変更を加えてはなりません。 他のハンドルがロックにバインドされていない場合、BindReclaimedLock は成功し、現在のハンドルはロックにバインドされます。 それ以外の場合、BindReclaimedLock は InstanceHandleConflictException をスローします。 他のハンドルでコマンドが進行中の場合、BindReclaimedLock は、ロックを再利用できるかどうかを決定する前に、これらのコマンドの結果の待機をブロックする可能性があります。

現在のインスタンス ハンドルは、インスタンスとロック所有者にバインドする必要があります。 インスタンスを完了することはできません。 ロック所有者に関連付けられているロック トークンは、ロックの所有者を識別するために使用されます。

ロックがハンドルにバインドされると、ハンドルの有効期間中はバインドされたままになります。 ロック トークンもインスタンス バージョンも変更できません。

適用対象