Síntomas

En un entorno CRX agrupado en TarPM, la siguiente excepción se lanza cuando se inician nodos de clústeres CRX adicionales:

ADVERTENCIA com.day.crx.persistence.tar.ReplicatingTarSet.open: No se pudo adquirir el bloqueo de /repository/shared/version/control javax.jcr.RepositoryException: la página inicial del repositorio /repository/shared/version/control parece estar en uso ya que el fichero llamado .lock está bloqueado por otro proceso.

Causa

Esta excepción se lanza debido a un problema de bloqueo cuya causa puede ser una de las siguientes:

  • Una instancia CRX que mantenía el bloqueo en una carpeta compartida (versión, espacio de trabajo, diario o repositorio) se apagaba de forma extraña, dejando atrás archivos .lock obsoletos.
  • Un nodo de clúster CRX tiene actualmente el bloqueo en una carpeta compartida, pero otras instancias de clúster CRX no pueden conectarse al nodo de clúster CRX maestro

La primera situación no suele ser problemática, el archivo .lock obsoleto se elimina y se reemplaza. Sin embargo, cuando se utiliza una versión anterior de NFS, es posible que el sistema de archivos no libere el bloque de este archivo después de un fallo.

Esto último supone un problema, ya que la comunicación entre un nodo de clúster CRX maestro y esclavo es necesaria para asegurar una sincronización adecuada del acceso de escritura al repositorio. Si un nodo de clúster esclavo no puede conectarse al nodo de clúster maestro a través de la red, asume que no se está ejecutando e intenta asumir el rol maestro.

Resolución

Al utilizar una versión anterior de NFS, asegúrese de detener todos los procesos y elimine manualmente todos los archivos .lock. Si esto no resuelve el problema, en la carpeta compartida que causa dicho problema, compruebe el parámetro de dirección del archivo listener.properties.

Ejemplo:

dirección=192.168.1.22\:58128

Todos los nodos del clúster CRX (esclavo) leen este archivo. Por lo tanto, todas las máquinas esclavas deben poder acceder a la dirección IP; de lo contrario, se producirá dicha excepción.

De forma predeterminada, CRX utilizará cualquier interfaz de red y puerto disponible. También es posible asignar explícitamente una dirección IP y un intervalo de puertos a utilizar. Estos ajustes se tienen que establecer en el nivel TarPersistenceManager tanto en repository.xml como en 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>

Aplica

CRX1.4.x (agrupado)

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea