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
-
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
-
Per verificare l’aggiornamento del nodo, deve essere impostato
async="async-reindex"
. -
Richiama
startPropertyIndexAsyncReindex
inPropertyIndexAsyncReindex
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…
-
Una volta completata la reindicizzazione, il flag di reindicizzazione verrà reimpostato su false.
-
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:
-
Apri CheckpointManager MBean:
Su MongoMK -/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DDocument+node+store+checkpoint+management%2Ctype%3DCheckpointManger
-
Richiama l'operazione
listCheckpoints()
. -
Trova la riga del punto di controllo con la proprietà
name=async-reindex
. -
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
-
Quindi apri l’operazione
releaseCheckpoint()
. -
Incolla l'ID copiato come p1 e fai clic su Richiama.
-
Questo passaggio rilascia il punto di controllo.