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 di 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

La reindicizzazione di un indice sincrono semplicemente impostando la proprietà di reindicizzazione su true genera un'operazione sincrona che può causare il blocco di un'istanza di 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 in PropertyIndexAsyncReindex MBean.

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

    Chiamata Post dovrebbe essere visualizzata una riga di registro che indicizza verrà eseguita…

  4. Una volta completata la reindicizzazione, il flag di reindicizzazione verrà 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 async="async-reindex" verrà rimosso in quanto controlla il thread su cui avverrà l'indicizzazione.

    La proprietà reindex-async è solo un flag di configurazione che non verrà modificato 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. Apri 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 l'operazione listCheckpoints().

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

  4. Copia il relativo valore ID negli Appunti:

    Su MongoMK sarà simile al seguente: r1234567aaaa-0-1

    In 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