環境
Adobe Experience Manager
問題
如何正確重新索引同步Oak索引而不造成停機?
解決方案
只需將reindex屬性設定為 true 導致同步操作,而可能導致Oak例項擱置。
為避免此情況,請將索引發送到後台線程。
若要這麼做,請遵循下列步驟:
步驟 1:在背景對話串中重新索引
從 CRXDE Lite 在要為非同步索引啟用的屬性索引的索引定義上:
/oak:index/property index
reindex=true
reindex-async=true
若要驗證上述操作是否重新整理了節點,應設定 async="async-reindex"
。
叫用 startPropertyIndexAsyncReindex
(在 PropertyIndexAsyncReindex
MBean 上)。
這將啟動搜尋此類索引的背景作業。
調用後,您應該會看到將執行日誌行重新索引……
完成重新索引後,重新索引標幟會重設為 false.
重新叫用步驟 3 以將索引變更回同步索引。如果未刪除非同步標幟,則可能必須叫用Mbean多次(如果同時影響此索引的變更,則可能會發生此情況)。
注意:只有 async="async-reindex"
將被移除,因為它控制索引將發生在哪個對話串上。
此 reindex-async
屬性只是不會自動變更的設定標幟。
這表示您要為控制所有未來重新索引的特定索引定義將其設定一次。
然後可預期它會留在那裡,於是您就不需要再次觸摸它了。
步驟 2:移除重新索引查核點 (僅限 AEM 6.2 和更早版本)
在不同步重新索引的流程中,會建立一個存放庫查核點。索引任務完成後,必須按如下所述將其釋出,以確保稍後可順利進行修訂垃圾收藏集:
首先,開啟 查核點管理器 MBean:
叫用 listCheckpoints()
作業.
找到包含 name=async-reindex
屬性的查核點列。
將其 id 值複製到剪貼簿:
在MongoMK上,看起來會類似這樣: r1234567aaaa-0-1
在TarMK上,看起來會類似這樣: 6eac07d0-fe27-4d16-82f8-6d5da4cefd67
然後開啟 releaseCheckpoint()
作業。
將複製的id貼上為p1,然後按一下 叫用.
此步驟將釋出查核點。