"交易回滚次数超过启动次数#34;例外?

时间:2015-10-18 05:34:51

标签: orientdb

我在一个非常奇怪的地方遇到这个例外。在新图表实例上的第一笔交易之后立即。

这是静态工厂伪代码:

if (factory == null){
    factory = new OrientGraphFactory("plocal:" + args[0] + File.separatorChar + "dir").setupPool(1, 10);
    factory.setAutoStartTx(false);
}
return new GRAPHWRAPPER(factory.getTx(), arg2, arg3, arg4, arg5);

在GRAPHWRAPPER类构造函数中,我有以下内容:

begin TX,
add two vertices, 
commit TX <- Throws the exception

它仅发生在工厂的第二次调用中。对工厂的调用始终发生在同一个线程(UI)

我使用的是2.0.12 / OS X 10.9 / Java 7.我缺少什么?

更新:

我终于找到了一个更有意义的例外:

java.util.ConcurrentModificationException at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:394)
at java.util.LinkedHashMap$ValueIterator.next(LinkedHashMap.java:409) at com.orientechnologies.orient.core.tx.OTransactionRealAbstract.getNewRecordEntriesByClass(OTransactionRealAbstract.java:190)
at com.orientechnologies.orient.core.iterator.ORecordIteratorClass.config(ORecordIteratorClass.java:133)
at com.orientechnologies.orient.core.iterator.ORecordIteratorClass.<init>(ORecordIteratorClass.java:88)
at com.orientechnologies.orient.core.iterator.ORecordIteratorClass.<init>(ORecordIteratorClass.java:63)
at com.orientechnologies.orient.core.iterator.ORecordIteratorClass.<init>(ORecordIteratorClass.java:53)
at com.tinkerpop.blueprints.impls.orient.OrientElementScanIterable.iterator(OrientElementScanIterable.java:47)
at com.tinkerpop.blueprints.util.DefaultGraphQuery$DefaultGraphQueryIterable$1.<init>(DefaultGraphQuery.java:88)
at com.tinkerpop.blueprints.util.DefaultGraphQuery$DefaultGraphQueryIterable.iterator(DefaultGraphQuery.java:86) 
at com.tinkerpop.blueprints.impls.orient.OrientGraphQuery$OrientGraphQueryIterable.iterator(OrientGraphQuery.java:79)

这是在GRAPHWRAPPER构造函数中。

我的代码只使用UI线程来实例化存储实例。然后所有访问都由工作线程完成。

我一直在打印以控制活动,而且每个人似乎都匹配thread-gt;图池池实例。每个线程都修改自己的元素集。像每个线程的子图一样。

我看到的唯一共同点是在共享线程期间添加的两个顶点。价值观不同。我将更改逻辑以使每个线程的密钥唯一,因此orientdb不包含查询中另一个线程的元素。

我稍后会报告状态。它是如此随机,以至于无法创建可重复的案例。

更新2:

如上所述使密钥唯一解决了几个例外。在这个过程中,我找到了ui线程使用图形的两个地方。这些可能是其他绊脚石的罪魁祸首。我会更改逻辑,如果我不再次更新,那是因为它是用户空间错误

0 个答案:

没有答案