【发布时间】:2020-05-25 00:05:37
【问题描述】:
我有 JavaScript 程序,其中包含两个事务:
T1 -> 在数据库中生成新文档(更新语句)
T2 -> 转换现有的 MarkLogic 文档
这个程序的成功执行需要两个事务要么成功要么回滚。
我希望控制执行,以便我可以看到内存中的新文档,但稍后在 T1 测试后回滚。如果我对 T1 完全满意,请继续 T2。
在 RDBMS (Oracle) 中,我可以操纵、查看和回滚此类更改(类似于拍摄快照,当操作完成时,快照会被丢弃)。
如何在 MarkLogic 中获得这样的控制权?
【问题讨论】:
-
xdmp.eval 在以下情况下不起作用:
declareUpdate(); const sem = require("/MarkLogic/semantics.xqy"); sem.rdfInsert([ sem.triple( sem.iri("http://example.org/band/The_Beatles"), sem.iri("http://example.org/band/origin"), sem.iri("http://example.org/band/United_Kingdom") ) ]);这只是一个简单的单语句事务。
标签: javascript transactions updates marklogic rollback