¿Por qué no se indexa la modificación de contenido?

Síntomas

Al iniciar, el repositorio de CRX funciona como se esperaba. Sin embargo, cualquier modificación del contenido no se indexa en Lucene. En el registro de errores se registran las entradas:

INFO [org.apache.jackrabbit.core.RepositoryImpl] (WorkspaceJanitor) disponiendo del espacio de trabajo 'myworkspace' que ha estado inactivo durante 5064 ms INFO [org.apache.jackrabbit.core.RepositoryImpl] (WorkspaceJanitor) cerrando el espacio de trabajo 'myworkspace'... INFO [org.apache.jackrabbit.core.RepositoryImpl] (WorkspaceJanitor) espacio de trabajo 'myworkspace' ha sido desactivado ERROR [org.apache.jackrabbit.core.RepositoryImpl] (ajp-10.2.0.101-12152-20) Incapaz de inicializar espacio de trabajo 'myworkspace'

Causa

Las siguientes condiciones deben cumplirse para que el problema exista:

  1. El repositorio está configurado con un maxIdleTime
  2. El espacio de trabajo en cuestión no es el espacio de trabajo predeterminado
  3. La inicialización del índice toma más tiempo que maxIdleTime
  4. La versión de CRX es la 1.4.x

El espacio de trabajo no predeterminado se inicia cuando se accede a él por primera vez (primer inicio de sesión en ese espacio de trabajo). El espacio de trabajo predeterminado se inicia en el momento del inicio del repositorio. El espacio de trabajo no predeterminado puede ser eliminado (apagado) después de un tiempo de inactividad configurable (es decir, que solo las sesiones de sistema e internas se registran en ese espacio de trabajo). El valor predeterminado en CRX es de 5 segundos.

Algunos componentes de un espacio de trabajo se inicializan inmediatamente al iniciar el espacio de trabajo, mientras que otros se inicializan bajo demanda. El repositorio establecerá un indicador en la instancia del espacio de trabajo una vez que se inicien los componentes inmediatamente inicializados. El subproceso de fondo que comprueba si se puede disponer de un espacio de trabajo comprobará ese indicador y la hora en que se accedió por última vez al espacio de trabajo. Al iniciar, esto puede convertirse en un problema, porque el índice se inicializa lentamente. Si el inicio del índice tomara más tiempo que maxIdleTime, entonces el subproceso de verificación de antecedentes pensará que el espacio de trabajo está inactivo y lo apagará mientras la indexación aún se está iniciando. Esta condición se ha solucionado en CRX 2.0.

Resolución

Esto significa que el problema está solucionado en CRX 2.0. La solución alternativa para CRX 1.4.x es (1) establecer maxIdleTime en repository.xml a 0 (NOTA: el valor predeterminado en CRX 1.4.2 es 5 segundos) O (2) establecer defaultWorkspace en repository.xml a “myworkspace” (NOTA: el valor predeterminado en CRX 1.4.2 es “crx.default”).

El efecto será el mismo tanto si realiza la primer opción como la segunda: el espacio de trabajo de myworkspace no se apagará después de algún tiempo de inactividad.

Sin embargo, hay una diferencia: solo el espacio de trabajo predeterminado se inicializa inmediatamente al iniciar el repositorio, todos los demás solo se inicializan en el primer acceso (primer inicio de sesión en el espacio de trabajo). Esto también significa que un índice inicial o reindexación solo se activa en el primer acceso para todos los espacios de trabajo que no son predeterminados.

El índice tendrá que ser reconstruido para corregir cualquier nodo no indexado mientras experimentaba el problema. La forma oficialmente compatible y recomendada para solucionar el índice es reconstruirlo.

Se aplica a

CRX 1.4.x

Logotipo de Adobe

Inicia sesión en tu cuenta