我有一个在二进制文档上运行 xdmp:document-filter()
的函数。我这样调用它:
let $doc-metadata-and-text := xdmp:document-filter(fn:doc("/ediscovery/mydocument.doc")/binary())
当我将其放入spawn-function() 中时,出现内存不足错误。这是我在日志文件中看到的内容:
2017-01-10 11:53:52.038 Notice: TaskServer: SVC-PROCESSRUN: xdmp:document-filter(fn:doc("/ediscovery/mydocument.doc")/binary()) -- Process run error: fork: Cannot allocate memory
尽管如果我从 XQuery main 调用 xdmp:document-filter()
,它工作得很好。
有什么建议吗?
最佳答案
xdmp:spawn-function
使用任务服务器中的线程执行任务。它有自己的设置,并且与通过查询控制台或其他应用程序服务器运行它的上下文不同。
在您的配置组下,查看任务服务器配置并考虑更改max-inference-size
。
但是,更改内存/线程设置应谨慎进行,因为它会改变服务器使用有限资源的方式。就您而言,令人困惑的部分是应用程序服务、任务服务器以及任何其他应用程序服务器的默认设置都将设置默认为相同的数量。
关于marklogic - 运行 xdmp 时无法分配内存 :document-filter() in spawn-function(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579249/