Marklogic 使用xdmp:lock-acquire()函数锁定文档时出现问题

Marklogic 使用xdmp:lock-acquire()函数锁定文档时出现问题,marklogic,marklogic-9,Marklogic,Marklogic 9,我们已经尝试了锁定方法的所有选项,文档被锁定,但即使锁定尚未解除,其他用户也可以更新文档 xdmp:lock-acquire("/inventory/hassan", "exclusive", "0", "This lock is acquiuired by admin user", 60) xdmp:node-replace(doc("/inventory/hassan")//location

我们已经尝试了锁定方法的所有选项,文档被锁定,但即使锁定尚未解除,其他用户也可以更新文档

xdmp:lock-acquire("/inventory/hassan", "exclusive", "0", "This lock is acquiuired by admin user", 60)
xdmp:node-replace(doc("/inventory/hassan")//location, <location>ABC</location>)
我们有另一个名为“shiv”的用户,该用户被分配了“管理员”角色,尽管锁尚未释放,“shiv”用户仍然可以执行以下功能并修改文档

xdmp:lock-acquire("/inventory/hassan", "exclusive", "0", "This lock is acquiuired by admin user", 60)
xdmp:node-replace(doc("/inventory/hassan")//location, <location>ABC</location>)
xdmp:node replace(doc(“/inventory/hassan”)//位置,ABC)
我们使用的是MarkLogic 10.0-.2.1


请帮我找出这里出了什么问题。

此锁不是事务锁。正如文件所说:

注意,这里描述的锁是用于通过WebDAV进行文件系统仿真的相对较重的持久文档锁,而不是用于数据库一致性的相对较轻的事务锁


如果您使用的是具有
admin
的用户,则它似乎绕过了锁

当我用一个用户锁定文档,然后尝试用另一个非特权用户修改它时,我会得到以下结果:

[1.0-ml] XDMP-LOCKED: xdmp:node-replace(fn:doc("/test.xml")/doc/location, <location>ABC</location>) -- Document or Directory is locked
[1.0-ml]XDMP-LOCKED:XDMP:node replace(fn:doc(“/test.xml”)/doc/location,ABC)——文档或目录被锁定

但是,在授予该用户
管理员
角色后,它将成功执行并更新文档。

感谢您的回复,我们的要求是在特定时间内锁定文档,其他人在锁定期间不应访问该文档,我的用例的解决方案是什么?如果其他人也能表现良好并调用lock-acquire,那就行了。它是为合作编辑而设计的。或者你甚至不希望它对其他人可见?听起来好像他们希望一个用户获得独占锁,而其他任何用户都不会被阻止这样做。可能需要查看是否允许具有
admin
权限的人绕过该检查。没有管理员角色的用户是否会被阻止?