OrientDB:IllegalStateException:挂钩执行时无法启动事务

时间:2016-07-22 01:00:23

标签: orientdb

当我尝试在数据库中插入17000个顶点时,我收到此错误。顶点被分组为多个树,当树具有被遍历/存储的bean时,提交发生。第一棵树有2300个顶点,第二棵树有5500个顶点,当它失败时就在这一点上。

java.lang.IllegalStateException: Cannot begin a transaction while a hook is executing
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.begin(ODatabaseDocumentTx.java:2210)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.begin(ODatabaseDocumentTx.java:2192)
at com.tinkerpop.blueprints.impls.orient.OrientTransactionalGraph.ensureTransaction(OrientTransactionalGraph.java:229)
at com.tinkerpop.blueprints.impls.orient.OrientTransactionalGraph.commit(OrientTransactionalGraph.java:177)
at net.odbogm.SessionManager.commit(SessionManager.java:351)
at com.quiencotiza.utilities.SetupInicial.loadRubros(SetupInicial.java:180)
at com.quiencotiza.utilities.SetupInicial.initDatabase(SetupInicial.java:48)
at com.quiencotiza.utilities.SetupInicial.main(SetupInicial.java:41)

它是一个单线程应用程序。它使用首字母记录加载数据库。 我已经升级到2.2.4但是我得到了同样的错误。

由于 马塞洛

好。我解决了这个问题。它似乎与activateOnCurrentThread()有关,但不知道它为什么会发生。什么意味着例外?它为什么扔?

1 个答案:

答案 0 :(得分:0)

我知道它是一个古老的话题,但也许它将对某人有所帮助, 遇到同样的问题,很多线程都有许多查询和更新。 所以我开始使用一个线程(Java中的SingleThreadExecutor)并解决它, 我想钩子锁里有个错误