Red Hat Training

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

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

Tableau 23.7. Liste des implémentations LockFactory disponibles

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