2

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

为此,我们需要:

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

在执行 (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但似乎没有任何效果。关于如何解决此问题的任何想法?

4

1 回答 1

3

扩展的树缓存错误仅意味着您尝试一次处理太多片段。首选的解决方案是减小工作集的大小。通常不太好,如果你有足够的空闲内存你可以在组设置中增加扩展树缓存的大小。但通常最好减小工作集的大小。

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

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

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

于 2013-06-07T16:28:21.753 回答