此頁面提供如何疑難排解復寫問題的資訊。
復寫(非反向復寫)由於某些原因失敗。
復寫失敗的原因有很多。 本文會說明分析這些問題時可能採取的方法。
按一下「啟動」按鈕時是否會觸發復寫? 如果不是,則執行下列動作:
復寫是否在復寫代理程式佇列中排入佇列?
請前往/etc/replication/agents.author.html檢查此專案,然後按一下要檢查的復寫代理。
如果一個代理程式佇列或幾個代理程式佇列卡住:
佇列是否顯示 已封鎖 狀態? 如果是,那麼發佈執行個體是否未執行或完全沒有回應? 檢查發佈執行個體以檢視它有什麼問題(亦即,檢查記錄檔,並檢視是否有OutOfMemory錯誤或某些其他問題。 然後,如果速度通常只是緩慢,則進行對話串傾印並加以分析。
佇列狀態是否顯示 佇列作用中 — #擱置中? 基本上,復寫工作可能會卡在等待發佈執行個體或Dispatcher回應的通訊端讀取中。 這可能表示發佈執行個體或Dispatcher處於高負載下或卡在鎖定中。 在此情況下,從作者處進行對話串傾印並發佈。
如果所有代理程式佇列都卡住
由於存放庫損毀或某些其他問題,可能無法在/var/replication/data下序列化特定內容片段。 如需相關錯誤,請檢視logs/error.log 。 若要清除錯誤的復寫專案,請執行下列動作:
Sling事件框架工作佇列可能發生問題。 請嘗試在/system/console中重新啟動org.apache.sling.event套件組合。
可能是工作處理已完全關閉。 您可以在「Sling事件」標籤中的「Felix主控台」下檢視它。 檢查是否顯示 — Apache Sling事件(作業處理已停用!)
DefaultJobManager設定也可能會進入不一致狀態。 當有人透過OSGiconsole手動修改「Apache Sling工作事件處理常式」設定(例如停用並重新啟用「啟用工作處理」屬性以及儲存設定)時,可能會發生這種情況。
建立replication.log
有時候,在DEBUG層級將所有的復寫記錄檔新增到個別的記錄檔中會很有幫助。 若要這麼做:
前往https://host:port/system/console/configMgr並以管理員身分登入。
找到Apache Sling記錄記錄器工廠並按一下 + 按鈕。 這將會建立新的記錄日誌程式。
設定設定如下:
如果您懷疑此問題與Sling事件/工作有任何關係,您也可以在categories:org.apache.sling.event底下新增此Java套件
有時候,暫停復寫佇列以減輕作者系統的負載,而不停用它可能是合適的。 目前這只能透過暫時設定無效連線埠的駭客攻擊來完成。 從5.4開始,您會在復寫代理程式佇列中看到暫停按鈕,但有一些限制
不會復寫頁面許可權,因為這些許可權會儲存在授予存取許可權的節點下,而非使用者。
一般而言,頁面許可權不應從作者復寫至發佈,預設情況下也不應如此。 這是因為在這兩個環境中,存取許可權應該不同。 因此,建議在發佈時與作者分開設定ACL。
在某些情況下,當嘗試將名稱空間資訊從作者執行個體復寫到發佈執行個體時,復寫佇列會遭到封鎖。 發生此情況是因為復寫使用者沒有 jcr:namespaceManagement
許可權。 若要避免此問題,請確定:
jcr:namespaceManagement
存放庫層級的許可權。 您可以授與許可權,如下所示:https://localhost:4502/crx/de/index.jsp
)作為管理員。jcr:namespaceManagement
從許可權清單。