Symptômes

Dans un environnement CRX en cluster TarPM, une exception est générée lors du démarrage de noeuds de cluster CRX supplémentaires :

WARN com.day.crx.persistence.tar.ReplicatingTarSet.open - Impossible d’acquérir le verrouillage sur /repository/shared/version/control javax.jcr.RepositoryException : le référentiel home /repository/shared/version/control semble être en cours d’utilisation puisque le fichier nommé .lock est verrouillé par un autre processus.

Cause

Cette exception est émise en raison d’un problème de verrouillage dont la cause racine peut être l’une des suivantes :

  • Une instance CRX contenant le verrou sur un dossier partagé (version, espace de travail, journal ou référentiel) a été arrêtée anormalement, laissant derrière des fichiers obsolètes .lock.
  • Un nœud de cluster CRX maintient actuellement le verrou sur un dossier partagé mais d'autres instances de cluster CRX ne peuvent pas se connecter au nœud de cluster CRX principal

La première situation est généralement non-problématique, le fichier obsolète .lock est supprimé et remplacé. Toutefois, lorsque vous utilisez une version antérieure d’NFS, le système de fichiers risque de ne pas publier le verrouillage de fichier sur ce fichier après un plantage.

Le second est un problème lorsque la communication entre un nœud de grappe CRX esclave et maître est nécessaire pour garantir une synchronisation correcte de l’accès en écriture au référentiel. Si un nœud de grappe esclave n’est pas en mesure de se connecter au nœud de la grappe principale via le réseau, il suppose qu’il n’est pas en cours d’exécution et passe au rôle principal.

Résolution

Lors de l’utilisation d’une version antérieure de NFS, assurez-vous que tous les processus sont arrêtés et supprimez manuellement tous les fichiers .lock. Si le problème n'est pas résolu, vérifiez le paramètre d'adresse du fichier listener.properties dans le dossier partagé qui est à l'origine de ce problème.

Exemple :

address=192.168.1.22\:58128

Ce fichier est lu par tous les nœuds de grappe CRX (esclaves). L’adresse IP doit par conséquent être accessible par tous les esclaves ; dans le cas contraire, l’exception se produit.

Par défaut, CRX utilise toute l'interface réseau disponible et le port disponible. Il est également possible d’affecter une adresse IP et une plage de ports à utiliser. Ces paramètres doivent être définis au niveau de TarPersistenceManager dans repository.xml et workspace.xml :

<PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager"> ... <param name="bindAddress" value="192.168.1.10" /> <param name="portList" value="9100-9110" /> </PersistenceManager>

Application

CRX1.4.x (en cluster).

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne