同期 AEM インデックスの再インデックス化方法 | AEM、Oak
同期AEMインデックスを再インデックスするには、reindex プロパティをに設定します。 true. ただし、この場合、Oak インスタンスがハングし、インデックス作成をバックグラウンドスレッドに送信する必要が生じる可能性があります。 この記事では、その方法を説明します。
説明 description
環境
Adobe Experience Manager
問題
ダウンタイムを発生させずに、同期 Oak インデックスを適切に再インデックス化する方法を教えてください。
解決策 resolution
reindex プロパティをに設定するだけで、同期インデックスのインデックスを再作成します。 true 同期操作を行うと、Oak インスタンスがハングする可能性があります。
この状況を回避するには、インデックス作成をバックグラウンドスレッドに送信します。 次の手順に従います。
手順 1:バックグラウンドスレッドで再インデックスを作成する
-
次のプロパティを次の場所から設定します。 CRXDE Lite 非同期インデックス作成を有効にするプロパティインデックスのインデックス定義で、次の操作を実行します。
code language-none /oak:index/<property index> reindex=true reindex-async=true
-
上記でノードが更新されることを検証するために、
async="async-reindex"
を設定する必要があります。 -
を呼び出す
startPropertyIndexAsyncReindex
のPropertyIndexAsyncReindex
MBean。これにより、バックグラウンドジョブが開始され、そのようなタイプのインデックスが検索されます。
呼び出し後に、ログ行のインデックス再作成が実行されます…
-
インデックスの再作成が完了すると、再インデックスフラグがにリセットされます。 false.
-
手順 3 をもう一度呼び出して、インデックスを同期インデックスに戻します。async フラグが削除されない場合、Mbean は複数回呼び出される必要がある場合があります(これは、このインデックスに同時に変更が発生する場合に発生します)。
注意: 次の項目のみ
async="async-reindex"
インデックス作成を実行するスレッドを制御する際に、が削除されます。The
reindex-async
プロパティは、単なる設定フラグで、自動的には変更されません。このアイデアは、今後のすべてのインデックス再作成を制御する特定のインデックス定義に対して 1 回設定するというものです。
そうすれば、そこに留まり、二度と触る必要がなくなることが期待されます。
手順 2:再インデックス化チェックポイントを削除する (AEM 6.2 以前のバージョンのみ )
非同期インデックス再作成のプロセス中に、リポジトリチェックポイントが作成されます。
インデックス作成タスクが完了したら、後でリビジョンのガベージコレクションをスムーズにするために、以下の説明に従ってリリースする必要があります。
-
まず、を開きます。 CheckpointManager MBean:
MongoMK の場合 —/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DDocument+node+store+checkpoint+management%2Ctype%3DCheckpointManger
-
を呼び出す
listCheckpoints()
操作。 -
name=async-reindex
プロパティでチェックポイント行を検索します。 -
ID 値をクリップボードにコピーします。
MongoMK では、次のようになります。r1234567aaaa-0-1
TarMK では、次のようになります。
6eac07d0-fe27-4d16-82f8-6d5da4cefd67
-
次に、
releaseCheckpoint()
操作を開きます。 -
コピーした ID を p1 として貼り付け、 起動.
-
この手順によって、チェックポイントを解放します。