Marklogic 在spawn-function()中运行xdmp:document-filter()时无法分配内存
我有一个函数可以在二进制文档上运行Marklogic 在spawn-function()中运行xdmp:document-filter()时无法分配内存,marklogic,Marklogic,我有一个函数可以在二进制文档上运行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通知:TaskServer:SVC-PROCESSRU
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通知:TaskServer:SVC-PROCESSRUN:
xdmp:文档过滤器(fn:doc(“/ediscovery/mydocument.doc”)/binary()--
进程运行错误:fork:无法分配内存
虽然如果我从XQuery main调用xdmp:document-filter()
,它仍然可以正常工作
有什么建议吗?xdmp:spawn函数使用任务服务器的线程执行任务。它有自己的设置,与通过查询控制台或其他应用程序服务器运行它的上下文不同
在您的配置组下,查看任务服务器配置并考虑更改<代码>最大推断大小< /C> > /P> 但是,更改内存/线程设置时应小心,因为它会更改服务器使用有限资源的方式。在您的案例中,令人困惑的是,应用程序服务、任务服务器以及任何其他应用程序服务器的默认设置都默认为相同的数量
我以前在应用程序服务器上而不是任务服务器上运行此功能时,看到此功能失败,并出现相同的“无法分配内存”错误。需要检查的一件事是交换空间,因为
xdmp:documentfilter
正在分叉一个单独的进程(如错误所示)
ML建议见