Sun Java System Web Server 7.0 管理ガイド

リソースのロックとロック解除

Sun Java System Web Server では、サーバー管理者は、リソースをロックすることでそのリソースへのアクセスを直列化できます。ある特定のリソースにアクセスするユーザーは、ロックを使用することで、別のユーザーがその同じリソースを変更することがない、という安心感が得られます。こうして、サーバー上のリソースを複数のユーザーが共有する場合に生じる「失われた更新」の問題が解決されます。サーバーによって維持されるロックデータベースは、発行され、クライアントによって使用されるロックトークンを追跡します。

Sun Java System Web Server がサポートする opaquelocktoken URI スキーマは、すべての時間にわたってすべてのリソース間で一意になるように設計されています。これには、ISO-1157.08 で説明されている汎用一意識別子 (UUID) 機構が使用されています。

Sun Java System Web Server は次の 2 種類のロック機構を認識します。

排他ロック

排他ロックとは、リソースへのアクセスを単一ユーザーにのみ許可するロックのことです。ほかのユーザーがその同じリソースにアクセスできるのは、そのリソースの排他ロックが解除された後です。

排他ロックは、リソースをロックする機構としては、厳格でコストがかかりすぎる場合があると言われています。たとえば、プログラムがクラッシュしたりロック所有者がリソースのロック解除を忘れたりした場合、ロックタイムアウトや管理者の介入がないと排他ロックを解除できません。

共有ロック

共有ロックを使えば、あるリソースのロックを複数のユーザーが取得できます。したがって、適切なアクセス権を持つユーザーであれば、誰でもロックを取得できます。

共有ロックを使用する場合、複数のロック所有者は、何らかの通信手段を使って作業の調整を行えます。共有ロックの目的は、共同作業者に、ほかのどのユーザーがリソースを操作する可能性があるかを知らせることです。