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

xdmp:transaction-locks()在无锁事务集群中触发超时及XDMP-XDQPNOSESSION错误

MarkLogic集群中xdmp:transaction-locks无锁事务时超时返回XDMP-XDQPNOSESSION错误

ML Server版本:10.0-9.5

我在使用xdmp:transaction-locks函数统计事务持有的锁时,发现该函数在多节点集群和本地单节点环境下表现不一致:

  • 当事务没有持有任何锁时,本地单节点执行会立即返回空结果,但集群环境执行会超时并返回XDMP-XDQPNOSESSION错误
  • 当事务持有锁时,本地和集群环境都能成功返回锁信息

以下是复现问题的代码示例:

无锁代码(触发错误)

xquery version "1.0-ml";

(: 获取当前主机和当前事务的锁,这里没有加锁逻辑,应该返回空结果
   本地执行返回:
   <transaction-locks xmlns="http://marklogic.com/xdmp/status/host"></transaction-locks>
   
   集群环境:
   触发超时并返回XDMP-XDQPNOSESSION错误
:)
xdmp:transaction-locks(xdmp:host(), xdmp:transaction())

带锁代码(执行成功)

xquery version "1.0-ml";

(: 持有锁的事务,本地和集群都能成功返回
   返回结果:
   <transaction-locks xmlns="http://marklogic.com/xdmp/status/host">
     <write>foo.xml</write>
   </transaction-locks>
:)
let $_ := xdmp:lock-for-update("foo.xml")
return xdmp:transaction-locks(xdmp:host(), xdmp:transaction())

有没有人遇到过这个问题?我是不是遗漏了什么配置或者细节?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:18:16