2014-11-24 85 views
2

我有一個MArkLogic簇與3個節點:MarkLogic羣集中的哪個節點運行CPF操作模塊?

  1. 節點1
  2. 節點2
  3. 節點3

在此羣集environemnt我有一個數據庫test其中有一個森林test-01。 The 主要主機森林test-01是在節點1。另外,我還對數據庫測試

安裝CPF現在,當我插入到數據庫測試任何文件,公積金動作模塊將其節點的任務服務器線程上執行?

將森林主要主機在文件被創建總是執行CPF動作模塊?

如果我在節點2節點3,之後在節點01停止MarkLogic服務配置的森林測試01故障轉移副本。哪個節點的任務服務器將執行CPF操作模塊?

回答

3

CPF使用觸發器。預先提交觸發器將在處理更新的相同主機上觸發。這與林和集羣配置無關。 post-commit觸發器將運行在主機上的任務服務器上,受影響的林(感謝John Snelson爲糾正我對此的理解)

CPF操作使用這兩種觸發器。因此,如果要將觸發器限制爲單個主機,請確保在該主機上處理所有更新確保所有受影響的林都在同一主機上。您還希望通過將更新流量移動到下一個主機來處理主機故障轉移。

CPF也使用數據庫在線事件,這有點不同。我相信可以在任何主機上運行,​​但它可能僅限於將任何林連接到數據庫的主機。

+0

在數據庫上安裝CPF並在插入文檔時使用觸發器數據庫中創建的默認觸發器後,如何確保在特定的集羣主機上處理此_update?另外,請您解釋一下聲明_「觸發器將在處理更新**的同一主機上觸發。」_ – Rahul 2014-11-24 17:46:18

+0

當您向主機發送更新請求時,該主機會處理更新。在提交階段,它處理任何預先提交觸發器。之後,它產生了提交後觸發器的任務。 – mblakele 2014-11-24 18:12:23

+0

我是MarkLogic及其發送/處理請求的新手。我正在做的是一個簡單的'xdmp:document-insert(「sample.xml」,,(),(「test」))',並且我在「test」集合上定義了一個CPF域。在這種情況下,有什麼方法可以控制CPF觸發器被觸發的主機,並最終使用哪個節點的任務服務器線程? – Rahul 2014-11-24 18:20:49

相關問題