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

Descripción description

Entorno
Adobe Experience Manager

Problema
¿Cómo reindexo correctamente un índice Oak sincrónico sin causar downtime?

Resolución resolution

Solución
Reindexación de un índice sincrónico simplemente configurando la propiedad reindex en true  resulta en una operación sincrónica que puede provocar que una instancia de Oak se cuelgue.
Para evitar esta situación, envíe la indexación a un subproceso en segundo plano.
Para ello, siga los pasos a continuación:

Paso 1: reindexe en un hilo de fondo

  1. Defina las siguientes propiedades desde CRXDE Lite en la definición de índice para el índice de propiedad que se 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 finalizada la reindexación, el indicador de reindexación se restablecería 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 asíncrono, es posible que tenga que invocarse el Mbean varias veces (esto puede suceder si se producen cambios que afecten simultáneamente a este índice).

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

    La propiedad reindex-async solo es 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.

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

Durante el proceso de reindexación asíncrona, se crea un punto de comprobación del repositorio.
Al finalizar 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. En primer lugar, abra el 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. Invocar 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, se verá similar a esto: 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