没有活动事务,Marklogic XCC无法提交

时间:2014-11-07 16:12:31

标签: java marklogic

我遇到了标记逻辑问题。我正在使用XCC / J api。我有一个多法案交易,我正在做类似下面的事情。

Session sess = ContentSource.newSession();
sess.setTransactionMode(TransactionMode.UPDATE)
....Perform some queries.....
session.commit();

但我一直在努力 如果没有活动事务,则无法提交IllegalStateException

2 个答案:

答案 0 :(得分:0)

来自Java Application Developer's Guide

  

要启动事务并获取Transaction对象,请在DatabaseClient对象上调用openTransaction()方法(因为事务控制是否进行了数据库更改)。要调用openTransaction(),应用程序必须作为rest-writer或rest-admin进行身份验证。

Transaction transaction = client.openTransaction();

您的示例代码中似乎没有,所以我认为您错过了启动交易的步骤。

答案 1 :(得分:0)

您可能在代码中的其他地方有另一个提交或回滚,在提交之前调用。

您可能打开了多个会话,而您尝试提交的会话不是多语句事务。

还值得检查XCC罐和服务器的更新。