Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

23.2.7. LockFactory 設定

Lucene ディレクトリーは、Hibernate Search によって管理される各インデックスの LockingFactory を使用してカスタムロックストラテジーで設定できます。
一部のロックストラテジーには、ファイルシステムレベルのロックが必要で、RAM ベースのインデックスで使用できます。このストラテジーを使用する場合、IndexBase 設定オプションは、ロックマーカーファイルを保存するファイルシステムの場所を参照するように指定する必要があります。
ロックファクトリーを選択するには、hibernate.search.<index>.locking_strategy オプションを 1 つのオプションを設定します。
  • simple
  • native
  • single
  • none

表23.7 利用可能な LockFactory 実装の一覧

name クラス 説明
simple org.apache.lucene.store.SimpleFSLockFactory
Java の File API に基づく安全な実装では、マーカーファイルを作成してインデックスの使用をマークします。
何らかの理由でアプリケーションを強制終了する必要がある場合には、このファイルを削除してから再起動する必要があります。
native org.apache.lucene.store.NativeFSLockFactory
simple と同様に、マーカーファイルを作成してインデックスの使用をマークします。しかし、これはネイティブの OS ファイルロックを使用しているため、JVM が終了してもロックはクリーンアップされます。
この実装では、NFS で既知の問題があるため、ネットワーク共有で使用しないでください。
native は、filesystemfilesystem-masterfilesystem-slave ディレクトリープロバイダーのデフォルトの実装です。
single org.apache.lucene.store.SingleInstanceLockFactory
この LockFactory はファイルマーカーを使用しませんが、メモリーに保持される Java オブジェクトロックであるため、インデックスが他のプロセスで共有されないことが確実な場合にのみ使用できます。
これは、ram ディレクトリープロバイダーのデフォルト実装です。
none org.apache.lucene.store.NoLockFactory
このインデックスへの変更は、ロックによって調整されません。
以下は、ロックストラテジーの設定例です。
hibernate.search.default.locking_strategy = simple
hibernate.search.Animals.locking_strategy = native
hibernate.search.Books.locking_strategy = org.custom.components.MyLockingFactory