MarkLogic - 插入文档时扩展树缓存错误

时间:2013-06-07 08:01:36

标签: marklogic

在我们的应用程序中,我们会收到需要预处理并加载到MarkLogic中的批量文件。

要做到这一点,我们需要:

  1. 将文件加载到临时MarkLogic工作目录中
  2. 预处理(XML文件上的节点操作)
  3. 使用xdmp:document-insert
  4. 将文档移至目标目标MarkLogic目录

    在执行(3)时,我们得到扩展的树缓存错误,对于一批1500个文档(最多400个文档,它工作正常。任何更高的数字,弹出错误)。

    我们代码的算法步骤:

        Get total number of docs in working directory = totalRec
        for Ctr = 1 to totalRec
            Get specific node values for current doc
            Frame the target URI where doc is to be loaded
            Insert document using xdmp:document-insert
    

    我们甚至尝试在for loop中使用交易开始/提交,但似乎没有任何效果。有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:3)

扩展的树缓存错误只是意味着您尝试同时处理太多碎片。优选的解决方案是减小工作组的尺寸。通常不太好,如果你有足够的备用内存,你可以增加组设置中扩展树缓存的大小。但通常最好减小工作集的大小。

这个特定用例听起来像内容处理工作流程。因此,您可能最好使用内置产品功能,即内容处理框架(CPF):http://docs.marklogic.com/guide/cpf有更多关于CPF的信息。

或者InfoStudio流可能是合适的:http://docs.marklogic.com/guide/infostudio

使用现有工具意味着您不必重新发明轮子。