2014-02-26 34 views
1

從內容創作服務器到內容傳送Web數據庫的發佈不會刷新內容傳送服務器的緩存時,我們的團隊遇到問題。Sitecore內容傳送服務器未清除緩存

我們有一個內容創作服務器,它有一個主,核心和Web數據庫。我們也有一個內容交付服務器,它有自己的主,核心和網絡。我們有兩個發佈選項。一個將發佈到內容創作Web數據庫。另一個將發佈到內容分發服務器的Web數據庫。

我的問題(S):

1)將如何內容授權服務器上發佈及時清除上述內容分發服務器上的緩存?

在我們的網站定義文件中,我們定義了名爲「publish:end」和「publish:end:remote」的兩個事件。我們在這裏附加的方法是type =「Sitecore.Publishing.HtmlCacheClearer,Sitecore.Kernel」,method =「ClearCache」

2)「publish:end」和「publish:end:remote」之間有什麼區別「?

我們爲每個環境都有單獨的網站定義文件。有一個用於內容創作服務器,另一個用於內容傳送服務器。由於發佈到內容交付服務器的Web數據庫發生在內容創作服務器上 - 人們會假定它正在使用在內容創作服務器的網站定義文件中聲明的事件。

3)我們可以將'內容交付網站'添加到內容創作網站定義中,然後將它們添加到「發佈:結束」和「發佈:結束:遠程」事件聲明中嗎?

4)是否需要將它們添加到一個或兩個?

5)當內容創作網站在「發佈:結束」和「發佈:結束:遠程」配置中拉取網站列表時,它到底做了什麼?

+7

請參閱Sitecore Scaling指南:http://sdn.sitecore.net/upload/sitecore6/66/scaling_guide_sc66-a4.pdf(Sitecore 6.6)或http://sdn.sitecore.net/upload /sitecore7/70/scaling_guide_sc70_a4.pdf(Sitecore 7) –

回答

1

正如Ruud所說,Sitecore Scaling指南將幫助您解決很多問題。

要查找的第一件事就是看你是否有EnableEventQueues設置爲真正。這將確保您的分佈式節點正在查找master數據庫中的事件。

要尋找的第二件事是確保指定您的實例名稱,以便內容交付節點知道要查找哪些事件。這些設置是InstanceNamePublishing.PublishingInstance。您的創作節點在兩者中將具有相同的值,但您的傳遞節點應在PublishingInstance設置中具有創作節點名稱。

最後,這可能只是我,從你的問題看來,你有兩個核心和兩個主數據庫?我不確定爲什麼您的交付節點需要自己的核心和主數據庫,除非您正在複製。根據我的理解,Core數據庫中的EventQueue表是所有實例用來相互通信事件的內容。確保在某種程度上,您的交付和創作能夠通過使用相同的Core DB或通過將您的創作Core複製到您的交付實例來「共享」EventQueue表。

在這三件事情和Sitecore Scaling指南之間,您應該能夠讓您的交付實例從編寫中傾聽發佈事件。

1

在尋找這個問題的解決方案時,沒有任何標準的建議爲我工作。 只有當我從這個網頁追蹤工具中的步驟我的緩存重新開始正常清算:http://sitecoreskills.blogspot.co.uk/2015/08/sitecore-html-cache-doesnt-clear.html

的解決方案竟然是完全無關的HTML緩存或事件隊列。

Sitecore維護一個名爲__System的遺留Lucene索引。在我們的情況下,索引被鎖定,因此無法更新。這在某種程度上阻止了HTML緩存的清除。答案是簡單地刪除它!

事實證明,__System索引可以被刪除沒有任何問題 - Sitecore只是之後重新創建它。