Share via


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 がブロックされ、それらのコマンドの結果を待ってから、ロックを再要求できるかどうかを決定することがあります。

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

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

適用対象