同期 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"を設定する必要があります。 -
PropertyIndexAsyncReindexMBeanのstartPropertyIndexAsyncReindexを呼び出します。これにより、このようなタイプのインデックスを検索するバックグラウンドジョブが開始されます。
呼び出し後、ログ行のインデックス再作成が実行されます…
-
インデックス再作成が完了すると、インデックス再作成フラグは false にリセットされます。
-
手順 3 をもう一度呼び出して、インデックスを同期インデックスに戻します。 非同期フラグが削除されない場合は、Mbeanを複数回呼び出す必要があります(このインデックスに同時に影響を与える変更が発生した場合に発生する可能性があります)。
メモ: インデックス作成を実行するスレッドを制御する
async="async-reindex"のみが削除されます。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-1TarMKでは、次のようになります。
6eac07d0-fe27-4d16-82f8-6d5da4cefd67 -
次に、
releaseCheckpoint()操作を開きます。 -
コピーしたIDをp1として貼り付け、呼び出しをクリックします。
-
この手順によって、チェックポイントを解放します。