Hoe te om een synchrone AEM index opnieuw te indexeren | AEM, Oak

Om een synchrone AEM index opnieuw te indexeren, kon u eenvoudig het herindexbezit aan waar plaatsen. Dit kan er echter toe leiden dat een Oak-instantie vastloopt. In dat geval moet u de indexering naar een achtergrondthread verzenden. In dit artikel wordt uitgelegd hoe.

Beschrijving description

Omgeving

Adobe Experience Manager

Probleem/symptomen

Hoe kan ik een synchrone Oak-index correct opnieuw indexeren zonder downtime te veroorzaken?

Resolutie resolution

Het opnieuw indexeren van een synchrone index door herindexbezit eenvoudig te plaatsen aan waar resultaten in een synchrone verrichting die een instantie van Oak kan veroorzaken om te hangen.

U voorkomt deze situatie door indexering naar een achtergrondthread te sturen. Voer de onderstaande stappen uit:

Stap 1: Opnieuw indexeren in een achtergronddraad

  1. Plaats de volgende eigenschappen van CRXDE Lite op de indexdefinitie voor de bezitsindex die voor async indexeren moet worden toegelaten:

    code language-none
    /oak:index/<property index>
    reindex=true
    reindex-async=true
    
  2. Om te controleren of het bovenstaande knooppunt vernieuwt, moet async="async-reindex" worden ingesteld.

  3. Roep startPropertyIndexAsyncReindex op PropertyIndexAsyncReindex MBean.

    Dit zou de achtergrondbaan beginnen die naar dergelijke types van indexen zou zoeken.

    Aanroeping tot Post u zou moeten zien een loglijn opnieuw wordt uitgevoerd…

  4. Zodra het re-indexeren volledig is, zou de herindexvlag aan vals worden teruggesteld.

  5. Herhaal stap 3 om de index weer in een synchronisatieindex te wijzigen. Als de asynchrone vlag niet wordt geschrapt, dan kan de boon veelvoudige tijden moeten worden aangehaald (dit kan gebeuren als er veranderingen die tegelijkertijd deze index beïnvloeden.)

    Nota: slechts async="async-reindex" zal worden verwijderd aangezien die controles die draad het indexeren op zal gebeuren.

    De eigenschap reindex-async is slechts een configuratiemarkering die niet automatisch wordt gewijzigd.

    Het idee is dat u het eens voor de specifieke indexdefinities zou plaatsen die al toekomstig opnieuw indexeren controleren.

    Dat wordt dan verwacht dat het daar blijft en dan hoef je het niet meer aan te raken.

Stap 2: Verwijder het opnieuw indexeren controlepunt (AEM 6.2 en oudere versies slechts)

Tijdens het proces van asynchrone re-indexering, wordt een bewaarplaats controlepunt gecreeerd.
Zodra de het indexeren taak heeft voltooid, moet het worden vrijgegeven zoals hieronder beschreven, om vlotte Inzameling van het Afval van de Revisie later te verzekeren:

  1. Eerst, open CheckpointManager MBean:

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

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

  2. Roep de bewerking listCheckpoints() aan.

  3. Zoek de rij met controlepunten met de eigenschap name=async-reindex .

  4. Kopieer zijn id-waarde naar het klembord:

    Op MongoMK ziet het er ongeveer als volgt uit: r1234567aaaa-0-1

    Op TarMK ziet het er ongeveer als volgt uit: 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

  5. Open vervolgens de bewerking releaseCheckpoint() .

  6. Plak gekopieerde identiteitskaart als p1 en klik aanhalen .

  7. Met deze stap wordt het controlepunt vrijgegeven.

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