java - 因果集群。即使交易终止后数据也不在图表中

标签 java session neo4j transactions neo4j-bolt

我们正在使用 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/

相关文章:

java - 我们可以为java接口(interface)实现强制超时吗?

ruby-on-rails-3 - Rails 3 - 验证和 :before_filter

c# - NHibernate 工作单元 - 多 session (WinForms)

neo4j - 如何测量社区版的neo4j数据库大小?

java - 将海量数据集导入 Neo4j 非常慢

Java/Gradle - 循环项目依赖项

java - 单例模式 - 早期绑定(bind)(涉及静态变量)是否减少了互斥锁的需要?

java - 什么时候应该关闭 HttpClient?

asp.net - 在插入数据库之前,如何在回发之间保留临时值?

java - Neo4j对象缓存的理解