You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MarkLogic集群间大文档迁移源主机超时,如何调整超时时间?

碰到这种跨集群传大文档的超时问题确实头疼,你已经试过xdmp:set-request-time-limit(600)但没生效,而且超时出在源主机,那得从源集群的几个关键配置入手调整,我给你梳理下:

源集群需调整的超时设置
  • App Server全局超时
    你用的xdmp:set-request-time-limit()只能修改当前请求的超时上限,但如果源集群上对应的App Server(比如你用来读取文档的REST API服务、XDBC服务或者自定义App Server)本身的全局请求超时设置比10分钟小,那这个函数的设置会被覆盖。
    去源集群的Admin界面,找到对应的App Server,修改Request Timeout参数(单位是秒),直接设为600甚至更大的值。保存后重启App Server生效。

  • 跨集群调用的函数级超时
    如果你的传输逻辑是通过在目标集群调用源集群的函数(比如用xdmp:invoke、xdmp:eval或者xdmp:http-get)来获取文档,那要在这些调用的选项里明确指定超时:

    • 用xdmp:invoke的话,加上timeout选项:
      xdmp:invoke(
        "fetch-large-doc.xqy",
        (),
        <options xmlns="xdmp:invoke">
          <timeout>600</timeout>
        </options>
      )
      
    • 用HTTP调用源集群REST API的话,在xdmp:http-get的选项里设置:
      xdmp:http-get(
        "http://source-cluster-host:8000/v1/documents?uri=/path/to/large/doc",
        <options xmlns="xdmp:http">
          <timeout>600</timeout>
        </options>
      )
      

    这个设置会针对单次跨集群请求生效,避免源主机那边的请求提前超时。

  • 任务服务器超时(如果用异步传输)
    要是你是通过任务服务器来异步执行大文档传输,那源集群的任务服务器也有自己的超时限制。去Admin界面的Groups > [你的组] > Task Servers,修改Task Timeout参数为600秒以上,确保异步任务有足够时间完成。

  • 内部集群通信超时
    极端情况下,大文档传输可能触发MarkLogic内部集群通信的超时限制。你可以检查源集群的Groups > [你的组] > General里的Inter-Cluster Timeout参数,适当调大这个值(单位是秒),不过这个参数影响范围较广,调整前最好评估集群的整体稳定性。

另外补充下,xdmp:set-request-time-limit()没生效的原因大概率是:你是在目标集群的请求里调用这个函数,但超时发生在源集群的请求上——源集群那边的请求根本没拿到你设置的超时值,所以得把超时设置直接应用在源集群的请求上下文里。

内容的提问来源于stack exchange,提问作者mikel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:22:40