23.2.7. Configuration LockFactory
Le répertoire Lucene Directory peut être configuré avec une stratégie de verrouillage personnalisée via
LockingFactory
pour chaque index géré par Hibernate Search.
Certaines stratégies de verrouillage ont besoin d'un verrou niveau système de fichiers, et peuvent être utilisées sur des indexes basés RAM. Lorsque vous utilisez cette stratégie, l'option de configuration
IndexBase
doit être spécifiée pour pointer vers un emplacement de système de fichiers dans lequel stocker les fichiers de marqueurs de verrouillage.
Pour sélectionner une fabrique de verrouillage, définissez l'option
hibernate.search.<index>.locking_strategy
à l'une les options suivantes :
simple
native
single
none
name | Class | Description |
---|---|---|
simple | org.apache.lucene.store.SimpleFSLockFactory |
Implémentation sécurisée basée sur l'API Java's File, marque l'utilisation de l'index en créant un fichier de marqueurs.
Si pour une raison ou une autre, vous deviez forcer la fermeture de votre application, vous devrez retirer ce fichier avant de démarrer à nouveau.
|
native | org.apache.lucene.store.NativeFSLockFactory |
Tout comme avec
simple , cela marque aussi l'utilisation de l'index en créant un fichier de marqueurs, mais celui-ci utilise des verrous de fichiers SE natifs, de façon à ce que même si la JVM est fermée, les verrous soient nettoyés.
Cette implémentation a des problèmes bien connus avec NFS, donc évitez-la sur les partages NFS
native est l'implémentation par défaut des fournisseurs de répertoires de filesystem , filesystem-master et filesystem-slave .
|
single | org.apache.lucene.store.SingleInstanceLockFactory |
Cette usine de verrouillage n'utilise pas de marqueur de fichier mais est un verrou d'objet Java qui s'est tenu en mémoire ; par conséquent, il est possible de l'utiliser uniquement lorsque vous êtes sûr que l'index ne va pas être partagé par tout autre procédé.
Il s'agit de l'implémentation par défaut du fournisseur de répertoire
ram .
|
none | org.apache.lucene.store.NoLockFactory |
Les modifications à cet index ne sont pas coordonnées par un verrou.
|
Ce qui suit est un exemple de configuration de stratégie de verrouillage :
hibernate.search.default.locking_strategy = simple hibernate.search.Animals.locking_strategy = native hibernate.search.Books.locking_strategy = org.custom.components.MyLockingFactory