Ziel

Wie indiziere ich einen synchronen Oak-Index ordnungsgemäß neu, ohne dabei Stillstand zu verursachen?

Schritte

Neuindizieren eines synchronen Indexes, indem einfach die Neuindizierungseigenschaft in einer synchronen Operation auf „wahre Ergebnisse“ gesetzt wird. Dies kann dazu führen, dass eine Oak-Instanz hängenbleibt. Um diese Situation zu vermeiden, muss die Indizierung an einen Hintergrund-Thread gesendet werden.  Gehen Sie dazu wie folgt vor:

  1. Neuindizieren in einem Hintergrund-Thread

    1. Stellen Sie die folgenden Eigenschaften von CRXDE Lite auf der Indexdefinition ein, damit der Eigenschaftenindex für asynchrone Indizierung aktiviert werden kann - /oak:index/<property index>
      reindex=true

      reindex-async=true

    2. Um zu überprüfen, ob der oben angeführte Schritt den Knoten aktualisiert, sollte asnc="asynch-reindex" festgelegt werden.

    3. Die startPropertyIndexAsyncReindex auf der PropertyIndexAsyncReindex MBean aufrufen. Hierdurch wird der Hintergrundauftrag gestartet, der nach derartigen Indexen sucht. Nach dem Aufruf sollten Sie die folgende Zeile im Protokoll sehen: „Reindexing will be performed …“

    4. Nach Abschluss der Neuindizierung wird die Neuindizierungskennzeichnung auf „false“ zurückgesetzt.

    5. Schritt 3 erneut aufrufen, um den Index wieder zurück in einen Synchronisierungsindex zu ändern. Wenn die async-Kennzeichnung nicht gelöscht wird, muss das Mbean möglicherweise mehrfach aufgerufen werden (dies kann passieren, wenn Änderungen auftreten, die gleichzeitig diesen Index betreffen).

    Hinweis: Nur derasync-"async-reindex"wird entfernt, da er kontrolliert, auf welchem Thread das Indizieren passieren wird.  Die Eigenschaft „reindex-async“ ist nur eine Konfigurationskennzeichnung, die sich nicht automatisch ändert. Die Idee ist, dass Sie dies einmal für eine spezifische Indexdefinition festlegen und damit alle zukünftigen Neuindizierungen kontrollieren. Dies wird voraussichtlich darin bleiben und Sie müssen sich nicht mehr damit beschäftigen.

  2. Entfernen des Neuindizierungskontrollpunkts (nur AEM 6.2 und ältere Versionen)

    Während des Prozesses der asynchronen Neuindizierung wird ein Repository-Kontrollpunkt erstellt. Nachdem die Indizierungsaufgabe abgeschlossen wurde, muss sie wie unten beschrieben freigegeben werden, um später die reibungslose Revision-Speicherbereinigung zu ermöglichen:

    1. Aufrufen des „listCheckpoints()“-Vorgangs

    2. Suchen Sie die Zeile des Kontrollpunkts mit der Eigenschaft „name=async-reindex“.

    3. Kopieren Sie seinen ID-Wert in die Zwischenablage
      Auf MongoMK wird er so aussehen: r1234567aaaa-0-1
      Auf TarMK wird er es aussehen: 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

    4. Dann den „releaseCheckpoint()“-Vorgang öffnen.

    5. Die kopierte ID als p1 einfügen und auf „Aufrufen“ klicken.

    6. Dieser Schritt gibt den Kontrollpunkt frei.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie