Obiettivo

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

Passaggi

Reindicizzare un indice sincrono semplicemente impostando la proprietà di reindicizzazione su risultati reali in un'operazione sincrona che può causare l'interruzione di un'istanza di Oak. Per evitare questa situazione inviare l'indicizzazione a un thread in background.  Per fare ciò, seguire i passaggi sotto indicati:

  1. Reindicizzare in un thread di background

    1. Impostare le seguenti proprietà da CRXDE Lite sulla definizione dell'indice per l'indice delle proprietà da abilitare per l'indicizzazione async indexing - /oak:index/<property index>
      reindex=true

      reindex-async=true

    2. Per convalidare che quanto indicato sopra aggiorna il nodo, async="async-reindex" dovrà essere impostato.

    3. Richiamare l'indice startPropertyIndexAsyncReindex sul MBean PropertyIndexAsyncReindex. Questo darà inizio al processo di background che cercherà questo tipo di indici. Dopo la chiamata si dovrà vedere una linea di registro Reindicizzazione in corso ....

    4. Una volta che la reindicizzazione è completa, il flag di reindicizzazione viene resettato a falso.

    5. Richiamare nuovamente il passo 3 per riportare l'indice ad un indice di sincronizzazione. Se il flag async non viene cancellato, è possibile che il Mbean debba essere richiamato più volte (questo può accadere se ci sono cambiamenti che influenzano contemporaneamente questo indice).

    Nota: Solo il async=“async-reindex”verrà rimosso in quanto controlla su quale thread avverrà l'indicizzazione.  La proprietà 'reindex-async' è solo un flag di configurazione che non cambia automaticamente. L'idea è che l'avrete impostato una sola volta per le definizioni specifiche degli indici che controllano tutte le future reindicizzazioni. In questo modo ci si aspetta che rimanga lì e non sarà necessario toccarlo di nuovo.

  2. Rimuovere il checkpoint di reindexing (solo AEM 6.2 e versioni precedenti)

    Durante il processo di reindicizzazione di async, viene creato un archivio del checkpoint. Una volta che l'attività di indicizzazione è stata completata, deve essere rilasciata come descritto di seguito, per garantire un'agevole Revision Garbage Collection futura:

    1. Richiamare l'operazione listCheckpoints()

    2. Trova la riga del checkpoint con la proprietà “name=async-reindex”.

    3. Copiare il suo valore id negli appunti
      Su MongoMK sarà simile a: r1234567aaaa-0-1
      Su TarMK sarà simile a: 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

    4. Quindi aprire l'operazione releaseCheckpoint().

    5. Incollare l'id copiato come p1 e fare clic su "Invoke".

    6. Questo passaggio rilascerà il checkpoint.

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online