MarkLogic升级不兼容(降级)

时间:2020-01-24 09:59:10

标签: marklogic marklogic-9 downgrade marklogic-10

我最近将MarkLogic 9.x.x升级到了10.x.x(最新版本)。 我们遇到此错误:

XDMP-NESTEDMULTI:xdmp:invoke-function(function()as item()*,query ...)-无法在多语句事务内创建嵌套的多语句事务。

现在,解决此问题的方法是在错误出现之前将版本降级到9.x.x。

是否有正确的方式降级MarkLogic? 甚至解决以上错误?

1 个答案:

答案 0 :(得分:3)

您将需要检查导致此错误的代码。寻找任何eval,invoke或spawn函数,并查看哪些选项将事务模式设置为update

交易模式

[不推荐使用:请改为使用updatecommit选项。]为此上下文显式设置事务模式。允许的值:auto(默认),queryupdate-auto-commitupdate。有关详细信息,请参见《应用程序开发人员指南》中的Transaction Mode

要隐式提交简单更新,请指定事务模式update-auto-commit。更新的事务处理模式会创建一个新的多语句更新事务,并且需要在代码中进行显式提交。

在一个会话中,一次只能有一个活动的多语句事务。如果指定新的多语句事务嵌套在多语句事务中,则MarkLogic会引发异常 XDMP-NESTEDMULTI

https://docs.marklogic.com/8.0/messages/XDMP-en/XDMP-NESTEDMULTI

原因

在多语句事务中尝试使用事务模式update进行评估或调用。

回复

改为使用事务处理模式update-auto-commit