当我尝试在数据库中插入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()有关,但不知道它为什么会发生。什么意味着例外?它为什么扔?
答案 0 :(得分:0)
我知道它是一个古老的话题,但也许它将对某人有所帮助, 遇到同样的问题,很多线程都有许多查询和更新。 所以我开始使用一个线程(Java中的SingleThreadExecutor)并解决它, 我想钩子锁里有个错误