MarkLogic 升级不兼容(降级)
MarkLogic upgrade incompatibility (downgrade)
我最近将我们的 MarkLogic 9.x.x 升级到了 10.x.x(最新版本)。
我们遇到了这个错误:
XDMP-NESTEDMULTI: xdmp:invoke-function(function() as item()*, query...) -- Cannot create a nested multi-statement transaction inside a multi-statement transaction.
现在我们解决这个问题的方法是降级回 9.x.x 我们在错误出现之前的版本。
有没有正确的降级MarkLogic的方法?
甚至解决上述错误?
您需要检查导致此错误的代码。查找任何 eval、invoke 或 spawn 函数,并查看哪些选项已将 transaction-mode 设置为 update
.
交易模式
[DEPRECATED: Use the update
and commit
options instead.] Explicitly set the transaction mode for this context. Allowed values: auto
(default), query
, update-auto-commit
, update
. For details, see Transaction Mode in the Application Developer's Guide.
For simple updates to be implicitly committed, specify a transaction mode of update-auto-commit
. A transaction mode of update creates a new multi-statement update transaction and requires an explicit commit in the code.
Within a session there can be only one active multi-statement transaction at a time. If a new multi-statement transaction is specified nested inside a multi-statement transaction, MarkLogic throws the exception XDMP-NESTEDMULTI.
https://docs.marklogic.com/8.0/messages/XDMP-en/XDMP-NESTEDMULTI
原因
在多语句事务中尝试使用事务模式 update
进行评估或调用。
回应
改用事务模式update-auto-commit
。
我最近将我们的 MarkLogic 9.x.x 升级到了 10.x.x(最新版本)。 我们遇到了这个错误:
XDMP-NESTEDMULTI: xdmp:invoke-function(function() as item()*, query...) -- Cannot create a nested multi-statement transaction inside a multi-statement transaction.
现在我们解决这个问题的方法是降级回 9.x.x 我们在错误出现之前的版本。
有没有正确的降级MarkLogic的方法? 甚至解决上述错误?
您需要检查导致此错误的代码。查找任何 eval、invoke 或 spawn 函数,并查看哪些选项已将 transaction-mode 设置为 update
.
交易模式
[DEPRECATED: Use the
update
andcommit
options instead.] Explicitly set the transaction mode for this context. Allowed values:auto
(default),query
,update-auto-commit
,update
. For details, see Transaction Mode in the Application Developer's Guide.For simple updates to be implicitly committed, specify a transaction mode of
update-auto-commit
. A transaction mode of update creates a new multi-statement update transaction and requires an explicit commit in the code.Within a session there can be only one active multi-statement transaction at a time. If a new multi-statement transaction is specified nested inside a multi-statement transaction, MarkLogic throws the exception XDMP-NESTEDMULTI.
https://docs.marklogic.com/8.0/messages/XDMP-en/XDMP-NESTEDMULTI
原因
在多语句事务中尝试使用事务模式 update
进行评估或调用。
回应
改用事务模式update-auto-commit
。