ファイル ロック

Enterprise Developer 2.3 より前のバージョンでは、UNIX および Linux プラットフォームで、OPEN 文において指定されているか CBL_OPEN_FILE の呼び出しにおいて使用されている sharing 句のセマンティクスが正しく適用されない場合がありました。バージョン 2.3 以降は、チューナー strict_file_locking=true が設定されている場合 (デフォルト設定) 、sharing 句は正しく受け入れられます。

動作の変更点として考えられる例を、以下に示します。

  • Process-A で、読み取り専用アクセスによって、他のプロセスからの書き込みアクセスを拒否する共有モード (SHARING WITH READ ONLY) でファイルを開きます。
  • 次に、Process-B で、読み取り専用アクセスによって、他のプロセスからの読み取りアクセスを拒否する共有モード (SHARING WITH NO OTHER) でファイルを開こうとします。

strict_file_locking=true の場合は、Process-A によって正常にファイルが開かれており、読み取りアクセスしか許可されていないため、Process-B ではファイルを開けません。

strict_file_locking=false の場合は、 Process-B で正常にファイルが開かれます。

アプリケーションで予期しない OPEN 状態が発生するかファイルを開けない場合は、この新しいファイル ロック動作の結果である可能性があります。そのような状況の場合は、アプリケーションのファイル ロックおよびファイル共有の要件を見直し、デフォルト設定を使用するようソース コードをリファクターすることをお勧めします。strict_file_locking=false に設定することで、元のファイル ロック動作およびファイル共有動作に戻すことができます。