Reindicizzare un indice AEM sincrono | AEM, Oak

Per reindicizzare un indice AEM sincrono, è sufficiente impostare la proprietà di reindicizzazione su true. Tuttavia, questo potrebbe causare il blocco di un’istanza Oak, nel qual caso è necessario inviare l’indicizzazione a un thread in background. Questo articolo spiega come.

Descrizione description

Ambiente

Adobe Experience Manager

Problema/Sintomi

Come posso reindicizzare correttamente un indice Oak sincrono senza causare tempi di inattività?

Risoluzione resolution

Reindicizzazione di un indice sincrono impostando semplicemente la proprietà di reindicizzazione su true  determina un’operazione sincrona che può causare il blocco di un’istanza Oak.

Per evitare questa situazione, invia l’indicizzazione a un thread in background. Segui i passaggi seguenti:

Passaggio 1: reindicizzare in un thread in background

  1. Imposta le seguenti proprietà da CRXDE Liti nella definizione dell’indice per l’indice delle proprietà da abilitare per l’indicizzazione asincrona:

    code language-none
    /oak:index/<property index>
    reindex=true
    reindex-async=true
    
  2. Per verificare l’aggiornamento del nodo, deve essere impostato async="async-reindex".

  3. Richiama startPropertyIndexAsyncReindex il PropertyIndexAsyncReindex MBean.

    In questo modo si avvia il processo in background che cerca tali tipi di indici.

    Dopo la chiamata dovresti vedere che verrà eseguita la reindicizzazione della riga di registro…

  4. Una volta completata la reindicizzazione, il flag di reindicizzazione viene reimpostato su false.

  5. Richiama nuovamente il passaggio 3 per ripristinare l’indice su un indice di sincronizzazione. Se il flag asincrono non viene eliminato, potrebbe essere necessario richiamare più volte Mbean. Ciò può verificarsi se sono in corso modifiche simultanee che interessano questo indice.

    Nota: Solo il async="async-reindex" verrà rimosso in quanto controlla il thread su cui avverrà l’indicizzazione.

    Il reindex-async è solo un flag di configurazione che non si modifica automaticamente.

    L’idea è di impostarla una volta per le specifiche definizioni degli indici che controllano tutte le reindicizzazioni future.

    in modo che rimanga lì e non siano necessarie ulteriori operazioni.

Passaggio 2: rimuovere il punto di controllo della reindicizzazione (solo AEM 6.2 e versioni precedenti)

Durante il processo di reindicizzazione asincrona, viene creato un punto di controllo dell’archivio.
Una volta completata l’attività di indicizzazione, questa deve essere rilasciata come descritto di seguito, per garantire in seguito una corretta raccolta di oggetti inattivi di revisione:

  1. Aprire innanzitutto il CheckpointManager MBean:

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

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

  2. Richiama listCheckpoints() operazione.

  3. Trova la riga del punto di controllo con la proprietà name=async-reindex.

  4. Copia il valore ID negli Appunti:

    Su MongoMK sarà simile a questo: r1234567aaaa-0-1

    Su TarMK sarà simile a questo: 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

  5. Quindi apri l’operazione releaseCheckpoint().

  6. Incolla l’ID copiato come p1 e fai clic su Richiama.

  7. Questo passaggio rilascia il punto di controllo.

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