2017-01-27 13 views
1

私たちは因果クラスタリングのためにNeo4j Enterprise Editionを使用しています。 3つのコアノードと3つのレプリカノードがあります。トランザクション終了後でもデータがグラフに表示されない

neo4jデータベースでデータを表示するには、セッションを明示的に閉じる必要がありますか。私は各トランザクションが明示的にsuccess()を呼び出すように各セッションで20Kトランザクションに近いトランザクションを作成しています(それぞれ1つのノードを作成しています)。

セッションが終了しない限り、データはNeo4Jグラフ(ブラウザ)やNeo4jシェルでは表示されません。

何か間違っていますか?私は各トランザクションの後にsuccess()メソッドを明示的に続けているので、トランザクションからsuccess()が返されるとすぐにデータを見ることができるはずです。

グラフ内のすべてのトランザクションデータをコミットする前に、Neo4J(ボルトドライバ)がセッションの完了を待機していますか?これらのすべての取引は、前回の取引または今後の取引と関係のない独立型取引ですか?

親切に教えてください。

答えて

0

Transaction.close()は(同じトランザクションで以前と呼ばれていたsuccess()かどうかfailure()に応じて、実際のコミットまたはロールバック操作を行いますいずれも呼び出されなかった場合は失敗がデフォルトです)。

Session.close()に電話したときに取引がまだ有効な場合は、取引が終了します(1セッションにつき最大1つまで有効です)。しかし、実際のコミットまたはロールバックを実行するためにセッションを閉じる必要はありません。自分で現在のトランザクションを直接閉じることができます。その後、必要に応じて、同じセッションを使用して新しいトランザクションを作成することができます。 (さらに、複数のセッションを同時に行うこともできます)

関連する問題