ロック・タイプの互換性
ロックの互換性は、あるアプリケーションがあるオブジェクトのロックを保持しているときに、別のアプリケーションが同じオブジェクトのロックを要求する場合に問題になります。 2 つのロック・モードに互換性があれば、オブジェクトに対する 2 番目のロックの要求は認可されます。
要求されたロックのロック・モードがすでに保持されているロックと互換性がないなら、ロック要求は認可されません。 その場合、要求は 最初のアプリケーションがロックを解放し、 さらに他の既存の非互換のロックがすべて解放されるまで待機する必要があります。
表 1 は、互換性のあるロック・タイプ ( yesで示される) と互換性のないロック・タイプ ( noで示される) を示しています。 要求側がロック待機中に、タイムアウトになることがあるので注意してください。
保持されているリソースの状態 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
要求されている状態 | なし | IN | IS | NS | S | IX | SIX | U | X | Z | NW |
なし | はい | はい | はい | はい | はい | はい | はい | はい | はい | はい | はい |
IN (意図なし) | はい | はい | はい | はい | はい | はい | はい | はい | はい | なし | はい |
IS (意図的共有) | はい | はい | はい | はい | はい | はい | はい | はい | なし | なし | なし |
NS (スキャン共有) | はい | はい | はい | はい | はい | なし | なし | はい | なし | なし | はい |
S (共有) | はい | はい | はい | はい | はい | なし | なし | はい | なし | なし | なし |
IX (意図的排他) | はい | はい | はい | なし | なし | はい | なし | なし | なし | なし | なし |
SIX (意図的排他共有) | はい | はい | はい | なし | なし | なし | なし | なし | なし | なし | なし |
U (更新) | はい | はい | はい | はい | はい | なし | なし | なし | なし | なし | なし |
X (排他) | はい | はい | なし | なし | なし | なし | なし | なし | なし | なし | なし |
Z (超排他) | はい | なし | なし | なし | なし | なし | なし | なし | なし | なし | なし |
NW (次キーの弱い排他) | はい | はい | なし | はい | なし | なし | なし | なし | なし | なし | なし |