Indexera om ett synkront AEM | AEM, Oak

Om du vill indexera om ett synkront AEM index kan du helt enkelt ange egenskapen reindex till true. Detta kan dock göra att en Oak-instans låser sig, och då måste du skicka indexeringen till en bakgrundstråd. Den här artikeln förklarar hur.

Beskrivning description

Miljö

Adobe Experience Manager

Problem/symtom

Hur indexerar jag om ett synkront Oak-index utan att orsaka driftstopp?

Upplösning resolution

Om du indexerar om ett synkront index genom att helt enkelt ange egenskapen reindex till true resulterar det i en synkron åtgärd som kan göra att en Oak-instans låser sig.

Du kan undvika detta genom att skicka indexering till en bakgrundstråd. Följ stegen nedan:

Steg 1: Indexera om i en bakgrundstråd

  1. Ange följande egenskaper från CRXDE Lite i indexdefinitionen för egenskapsindexet som ska aktiveras för asynkron indexering:

    code language-none
    /oak:index/<property index>
    reindex=true
    reindex-async=true
    
  2. async="async-reindex" bör anges för att verifiera att noden ovan uppdaterar.

  3. Anropa startPropertyIndexAsyncReindexPropertyIndexAsyncReindex MBean.

    Detta startar bakgrundsjobbet som skulle söka efter sådana typer av index.

    Post-anrop. Du bör se att en omindexering av loggrader utförs…

  4. När omindexeringen är klar återställs omindexeringsflaggan till false.

  5. Återanropa steg 3 om du vill ändra tillbaka till ett synkroniseringsindex. Om den asynkrona flaggan inte tas bort kan du behöva anropa Mbean flera gånger (detta kan inträffa om det inträffar ändringar som påverkar indexet samtidigt).

    Obs! Bara async="async-reindex" tas bort som de kontroller som indexeringen kommer att utföras på.

    Egenskapen reindex-async är bara en konfigurationsflagga som inte ändras automatiskt.

    Tanken är att du skulle ange den en gång för de specifika indexdefinitionerna som styr all framtida omindexering.

    Det förväntas sedan stanna där inne och då behöver du inte röra det igen.

Steg 2: Ta bort kontrollpunkten för omindexering (endast AEM 6.2 och tidigare versioner)

Under den asynkrona omindexeringen skapas en databaskontrollpunkt.
När indexeringsaktiviteten är klar måste den släppas enligt beskrivningen nedan för att säkerställa en jämn Revision-skräpinsamling senare:

  1. Öppna först CheckpointManager MBean:

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

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

  2. Anropa åtgärden listCheckpoints().

  3. Hitta kontrollpunktsraden med egenskapen name=async-reindex.

  4. Kopiera dess ID-värde till Urklipp:

    På MongoMK ser det ut ungefär så här: r1234567aaaa-0-1

    På tarMK ser den ut ungefär så här: 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

  5. Öppna sedan åtgärden releaseCheckpoint().

  6. Klistra in det kopierade ID:t som p1 och klicka på Anropa.

  7. I det här steget kommer kontrollpunkten att frigöras.

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