Reindicizzare un indice AEM sincrono | AEM, Oak

Descrizione

Ambiente
Adobe Experience Manager

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

Risoluzione

Soluzione
Reindicizzazione di un indice sincrono semplicemente impostando la proprietà reindicizzazione su true si traduce in un'operazione sincrona che può causare il blocco di un'istanza Oak.
Per evitare questa situazione, invia l'indicizzazione a un thread in background.
A tale scopo, segui la procedura indicata di seguito:

Passaggio 1: reindicizzare verso un thread in background

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

    /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 in un MBean PropertyIndexAsyncReindex.

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

    Dopo la chiamata dovresti vedere che verrà eseguita una reindicizzazione della riga del 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 async non viene eliminato, allora potrebbe essere necessario richiamare Mbean più volte (Questo può accadere se ci sono modifiche che influiscono contemporaneamente su questo indice.)

    Nota: questa operazione rimuove solo async="async-reindex", in quanto controlla il thread su cui avverrà l’indicizzazione.

    La proprietà 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.
Dopo aver completato l’attività di indicizzazione è necessario rilasciarla come descritto di seguito, per garantire in futuro una corretta raccolta di oggetti inattivi di revisione:

  1. Per prima cosa, apri le 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 il listCheckpoints() funzionamento.

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

  4. Copia il relativo valore ID negli Appunti:

    Su MongoMK, avrà un aspetto simile al seguente: r1234567aaaa-0-1

    Su TarMK, avrà un aspetto simile al seguente: 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.

In questa pagina