Cómo reindexar un índice síncrono de AEM | AEM, Oak

AEM Para reindexar un índice de sincrónico, simplemente podría establecer la propiedad reindex en true. Sin embargo, esto puede hacer que se cuelgue una instancia de Oak, en cuyo caso debe enviar la indexación a un hilo en segundo plano. Este artículo explica cómo hacerlo.

Descripción description

Entorno

Adobe Experience Manager

Problema

¿Cómo reindexo correctamente un índice síncrono de Oak sin provocar un tiempo de inactividad?

Resolución resolution

Reindexación de un índice síncrono simplemente estableciendo la propiedad reindex a true  provoca una operación sincrónica que puede hacer que se cuelgue una instancia de Oak.

Para evitar esta situación, envíe la indexación a un subproceso en segundo plano. Siga estos pasos:

Paso 1: Reindexe en un hilo de fondo

  1. Establezca las siguientes propiedades de CRXDE Lite en la definición de índice de la propiedad índice que se va a habilitar para la indexación asíncrona:

    code language-none
    /oak:index/<property index>
    reindex=true
    reindex-async=true
    
  2. Para validar que lo anterior actualiza el nodo, se debe ser establecer async="async-reindex".

  3. Invoque el startPropertyIndexAsyncReindex en el PropertyIndexAsyncReindex MBean.

    Esto debería iniciar el trabajo en segundo plano para buscar estos tipos de índices.

    Después de la invocación debería ver que se realizará una reindexación de la línea de registro…

  4. Una vez completada la reindexación, el indicador de reindexación se restablecerá a false.

  5. Vuelva a invocar el paso 3 para volver a cambiar el índice a un índice de sincronización. Si no se elimina el indicador async, es posible que el MBean tenga que invocarse varias veces (puede ocurrir si hay cambios que ocurren simultáneamente y que afectan a este índice).

    Nota: Solo el async="async-reindex" se eliminará ya que controla en qué hilo se producirá la indexación.

    El reindex-async La propiedad de es solo un indicador de configuración que no cambiará automáticamente.

    La idea es que se establezca una vez para las definiciones de índice específicas que controlen todas las reindexaciones futuras.

    Así se espera que permanezca y no tendrá que volver a tocarlo.

AEM Paso 2: Elimine el punto de comprobación de reindexación (solo en la versión 6.2 y versiones anteriores de)

Durante el proceso de reindexación asíncrona, se crea un punto de comprobación del repositorio.
Una vez finalizada la tarea de indexación, debe liberarse como se describe a continuación, para garantizar una recolección de basura de revisión sin problemas más adelante:

  1. Primero, abra CheckpointManager MBean:

    En MongoMK - /system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DDocument+node+store+checkpoint+management%2Ctype%3DCheckpointManger

    En TarMK - /system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DSegment+node+store+checkpoint+management%2Ctype%3DCheckpointManger

  2. Invoque el listCheckpoints() operación.

  3. Encuentre la fila del punto de comprobación con la propiedad name=async-reindex

  4. Copie su valor de ID en el portapapeles:

    En MongoMK, tendrá un aspecto similar a este: r1234567aaaa-0-1

    En TarMK, tendrá un aspecto similar a este: 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

  5. A continuación, abra la operación releaseCheckpoint().

  6. Pegue el ID copiado como p1 y haga clic en Invocar.

  7. Este paso liberará el punto de comprobación.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f