我们正在使用 Neo4j 企业版进行因果聚类。核心节点3个,副本节点3个。
是否需要显式关闭 session 才能使数据在 neo4j 数据库中可见。我在每个 session 中创建近 20K 个事务(每个事务创建一个节点),每个事务都显式调用 success();
我观察到,除非 session 终止,否则数据在 Neo4J 图形(浏览器)以及 Neo4j shell 中都是不可见的。
我做错了什么吗?我希望由于每个事务后面都显式地跟随 success() 方法,因此我应该能够在事务返回 success() 后立即看到数据。
Neo4J(bolt Driver)是否会等待 session 完成后再提交 Graph 中的所有事务数据?所有这些交易都是独立的交易,与之前或即将到来的交易无关?
请指教。
最佳答案
看起来事务在 block try catch
中没有自动关闭。
您可以手动关闭事务而不关闭 session :[ https://neo4j.com/docs/java-reference/current/javadocs/org/neo4j/graphdb/Transaction.html#close-- ]:
Transaction tx = graphDb.beginTx();
try
{
// operations on the graph
// ...
tx.success();
}
finally
{
tx.close();
}
关于java - 因果集群。即使交易终止后数据也不在图表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41894824/