同期 AEM インデックスの再インデックス化方法 | AEM、Oak
同期AEM インデックスを再インデックス化するには、reindex プロパティを true に設定するだけです。 ただし、これによりOak インスタンスがハングアップする可能性があり、その場合は、インデックス作成をバックグラウンドスレッドに送信する必要があります。 この記事では、その方法を説明します。
説明
環境
Adobe Experience Manager
問題/症状
ダウンタイムを発生させずに、同期 Oak インデックスを適切に再インデックス化する方法を教えてください。
解決策
単に reindex プロパティを true に設定して同期インデックスを再インデックス化すると、同期操作になり、Oak インスタンスがハングアップする原因となる可能性があります。
この状況を回避するには、インデックスをバックグラウンドスレッドに送信します。 次の手順に従います。
手順 1:バックグラウンドスレッドで再インデックス化する
-
非同期インデックス作成を有効にするために プロパティインデックスのインデックス定義に対して、 CRXDE Liteから次のプロパティを設定します:
+-----------------------------+ | code language-none | +=============================+ |
| | /oak:index/<property index> | | reindex=true | | reindex-async=true | |
| +-----------------------------+**. 上記でノードが更新されることを検証するために、
async="async-reindex"
を設定する必要があります。.PropertyIndexAsyncReindex
MBean 上でstartPropertyIndexAsyncReindex
を呼び出します。これにより、そのようなタイプのインデックスを検索するバックグラウンドジョブが開始されます。
Postの呼び出し行のインデックス再作成が実行されるのがログに表示されます。. インデックス再作成が完了すると、インデックス再作成フラグは false にリセットされます。. 手順 3 をもう一度呼び出して、インデックスを同期インデックスに戻します。非同期フラグが削除されていない場合、Mbean は複数回呼び出す必要がある可能性があります(これは、このインデックスに影響を与える変更が同時に発生している場合に発生する可能性があります)。
メモ: は、インデックス作成がどのスレッドで行われるかを制御するので、
async="async-reindex"
のみが削除されます。reindex-async
プロパティは単なる設定フラグで、自動的に変更されることはありません。このアイデアは、将来のすべての再インデックス化を制御する特定のインデックス定義に対して、これを 1 回設定するというものです。
そうすれば、そこに留まり、二度と触る必要がなくなることが期待されます。**
****手順 2:再インデックス化のチェックポイントを削除する(AEM 6.2 およびそれ以前バージョンのみ)**非同期のインデックス再作成中に、リポジトリチェックポイントが作成されます。
インデックス作成タスクが完了したら、後でリビジョンガベージコレクションをスムーズにするために、後述のとおりにリリースされる必要があります。1) まず、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 として貼り付け、「 呼び出し 」をクリックします。
-
この手順によって、チェックポイントを解放します。**