0

我正在使用 javascript 进行协调,在 MarkLogic DHF 2.1.0 中运行良好。我们最近升级到 MarkLogic Data Hub Framework 4.1.0。

升级引起了问题,因为我的大多数文档现在都没有得到协调。协调从收集器到内容、主要和三元组运行良好,但在检查跟踪后,我发现问题出在 Writer.sjs 部分。

以下是 Writer.sjs 中的错误片段:

xdmp.documentInsert(options.uri, envelope, {permissions : xdmp.defaultPermissions(), collections : [options.entity, "FWEWorkOrder"]}); 

下面是作者中的当前代码:

xdmp.documentInsert(options.uri, envelope, [xdmp.permission('rest-reader', 'read'),xdmp.permission('rest-writer', 'update')], [options.entity, "FWEWorkOrder"]);

"消息":"冲突更新","堆栈":"XDMP-CONFLICTINGUPDATES: xdmp.documentInsert(\"/FWE/WorkOrder/Thailand/1003160.xml\", XMLDocument(\"http://marklogic.com/entity -services'>......\"), Sequence({capability:\"read\", roleId:\"7089338530631756591\"}, {capability:\"update\", roleId:\"15520654661378671735\" }), Sequence(\"WorkOrder\", \"FWEWorkOrder\")) -- 冲突更新 xdmp.documentInsert(\"/FWE/WorkOrder/Thailand/1003160.xml\

请注意,我的记录中很少有(约占被协调的总记录的 1%)没有遇到任何问题。

以下是我之前在 writer.sjs 中的代码:

您对导致XDMP-CONFLICTINGUPDATES错误的原因有任何想法吗?

4

1 回答 1

0

流程是分批工作的,您在同一个事务中写入同一个 URI 三次,因此更新冲突。

于 2019-01-18T22:40:27.963 回答