2014-11-24 50 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

相关问题