Neo4j Transaction永远运行,空白查询

时间:2019-03-28 09:18:30

标签: neo4j py2neo

我们正在使用neo4jpy2neo来执行密码查询,以对neo4j进行任何更新或读取操作。

最近,我们开始面临一个问题,即所有密码查询都不会执行,因此尝试使用CALL dbms.listTransactions()在neo4j中查找所有事务,并找出原因是该事务已获得大量锁并且与任何查询都没有关联,而且此交易从几个小时开始运行。

在代码部分中,我始终确保即使在密码查询或任何其他代码部分中发生异常时,事务也不会保持打开状态,因为我正在回滚事务,以便可以释放获得的锁。 / p>

下面是交易清单查询的屏幕截图:-

enter image description here

可以看出,query-2被上述事务阻止。

现在,我知道我可以使用neo.conf来限制交易时间,但是我并不喜欢这样做,因为有时它也可能错误地终止交易,而且找出并解决该问题非常重要没有查询的交易即将进行,如何处理。

仅当我们重新启动neo4j服务器时,该事务才会消失,并且在一段时间后再次出现。

下面是neo4j事务创建,提交和回滚的非常粗糙的代码段。

 graph_obj = Graph(host=neo4j_auth_obj["host"], port=neo4j_auth_obj["port"],
              user=neo4j_auth_obj["user_name"], password=neo4j_auth_obj["password"])

neo_transaction = graph_obj.begin()

try:
    cypher_query = "a valid cypher query"
    neo_transaction.run(cypher_query)
    neo_transaction.commit()
except Exception:
    neo_transaction.rollback()

这笔空白交易有什么用?

0 个答案:

没有答案