如何可视化更新和后来回滚的JavaScript更新事务?

问题描述 投票:1回答:1

我有 脚本语言 程序包含两个事务。

T1 -> 在数据库中生成新的文件(更新声明)

T2 -> 转变现有的MarkLogic文件。

这个程序的成功执行需要两个事务要么成功,要么回滚。

我希望控制执行,使我可以看到内存中的新文档,但在T1测试后,以后回滚。如果我对T1完全满意,就进行T2。

在RDBMS(Oracle)中,我可以操作、查看和回滚这样的变化(类似于拍摄快照,当操作完成后,快照被丢弃)。

我如何在MarkLogic中获得这样的控制权?

javascript transactions updates marklogic rollback
1个回答
0
投票

插入发生在当前语句的末尾,所以要想看到结果,就需要启动一个多语句事务,在一个语句中插入,在下一个语句中读取,然后提交或回滚。

也就是说,在MarkLogic中,比较好的、常用的方法是在插入之前验证输入,这样事务就可以在一条语句中发生,如果输入是有效的,并且主模块可以使用,就很少有理由从持久化数据中重新读取输入。

例如,对于triple,典型的做法是使用sem.rdfParse()并在执行sem.rdfInsert()之前验证triple。 或者,如果使用 TDE 来投射 triples,则在执行 xdmp.documentInsert()之前执行 tde.nodeDataExtract()。

希望能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.