同期AEMインデックスの再インデックスの方法 | AEM, Oak

説明

ダウンタイムを発生させずに同期 Oak インデックスを適切に再インデックスする方法を教えてください。

解像度

reindex プロパティを true に設定するだけで同期インデックスを再インデックスすると、同期操作が実行され、Oak インスタンスがハングする可能性があります。 この状況を回避するには、インデックスをバックグラウンドスレッドに送信します。  これをおこなうには、次の手順に従います。

手順 1: バックグラウンドスレッドでインデックスを再作成

  1. プロパティインデックスのインデックス定義のCRXDE Liteから次のプロパティを設定し、非同期インデックス作成を有効にします — /oak:index/property index

    reindex=true

    reindex-async=true

  2. 上記のがノードを更新することを検証するには、次の手順を実行します。 async="async-reindex" を設定する必要があります。

  3. を呼び出す startPropertyIndexAsyncReindexPropertyIndexAsyncReindex MBean。 これにより、バックグラウンドジョブが開始され、そのようなタイプのインデックスが検索されます。 呼び出し後に、ログ行「インデックスの再作成が実行されます…

  4. 再インデックスが完了すると、再インデックスフラグが false にリセットされます。

  5. 手順 3 を再度呼び出して、インデックスを同期インデックスに戻します。 async フラグが削除されない場合、Mbean は複数回呼び出される必要がある場合があります(これは、このインデックスに同時に変更が発生する場合に発生します)。

注意: 次の項目のみ async="async-reindex" インデックス作成を実行するスレッドを制御する際に、が削除されます。  この reindex-async プロパティは、単なる設定フラグで、自動的には変更されません。 このアイデアは、今後のすべてのインデックス再作成を制御する特定のインデックス定義に対して 1 回設定するというものです。 そうすれば、その中に留まって、二度と触れる必要がなくなると予想されます。

手順 2: インデックス再作成チェックポイントを削除します (AEM 6.2 以前のバージョンのみ )。

非同期インデックス再作成のプロセス中に、リポジトリチェックポイントが作成されます。 インデックス作成タスクが完了したら、後でリビジョンのガベージコレクションをスムーズにするために、以下の説明に従ってリリースする必要があります。

  1. まず、CheckpointManager MBean を開きます。

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

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

  2. を呼び出す listCheckpoints() 操作

  3. を使用してチェックポイント行を見つけます。 name=async-reindex プロパティ。

  4. ID 値をクリップボードにコピーします。

    MongoMK では、次のようになります。 r1234567aaaa-0-1

    TarMK では、次のようになります。 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

  5. 次に、 releaseCheckpoint() 操作。

  6. コピーした ID を p1 として貼り付け、「呼び出し」をクリックします。

  7. この手順により、チェックポイントが解放されます。

このページ