Transactions DMSDK事务-Marklogic JAVA API

Transactions DMSDK事务-Marklogic JAVA API,transactions,marklogic,atomic,java,Transactions,Marklogic,Atomic,Java,我想使用DMSDK将3个文档摄取到marklogic数据库中。在接收时,我在一个文档接收中创建了一个错误,因此整个事务被回滚 我想知道用DMSDK编写的在单个事务(batcher)中运行的多个update语句是否被视为单个事务语句。 基本上,我想检查在DMSDK事务(batcher)中编写的语句是否能够看到在同一事务中编写的其他语句。 例如,如果事务t1中有语句s1接收文档,我是否可以编写另一个语句s2,该语句s2将能够使用DMSDK在同一事务t1中查询s1接收的文档 我观察到我们可以使用Xqu

我想使用DMSDK将3个文档摄取到marklogic数据库中。在接收时,我在一个文档接收中创建了一个错误,因此整个事务被回滚

我想知道用DMSDK编写的在单个事务(batcher)中运行的多个update语句是否被视为单个事务语句。 基本上,我想检查在DMSDK事务(batcher)中编写的语句是否能够看到在同一事务中编写的其他语句。 例如,如果事务t1中有语句s1接收文档,我是否可以编写另一个语句s2,该语句s2将能够使用DMSDK在同一事务t1中查询s1接收的文档


我观察到我们可以使用Xquery,但不能使用服务器端javascript,因为在服务器端javascript中,它将单个事务中的所有语句视为单个语句。任何人都可以通过将事务中的所有语句视为单个语句事务来建议DMSDK的情况是否相同?

每个DMSDK批在单个事务中执行。不同的DMSDK批在不同的事务中执行

关于服务器端代码中的事务

虽然XQuery确实有用于执行顺序事务的特殊语法(分隔符),但更典型的方法是使用具有不同事务隔离的
xdmp:invoke()
xdmp:invoke-function()
xdmp:eval()
来执行子事务。这种方法提供了更多的控制

服务器端JavaScript中提供了相同的函数--
xdmp.invoke()
xdmp.invokeFunction()
xdmp.eval()

希望有帮助