neo4j:在 java 中发送的有限查询
Posted
技术标签:
【中文标题】neo4j:在 java 中发送的有限查询【英文标题】:neo4j : Limited queries sent in java 【发布时间】:2014-06-01 18:12:22 【问题描述】:对于在 Tomcat 下开发的网站,我将我的程序连接到数据库 neo4j。连接是通过 jdbc 完成的。 我的程序现在在本地,数据库在远程服务器上。 当我启动 Tomcat 时,它首先检查是否存在特定节点,如果没有,它会创建它们。 大约有 135 个节点。 问题:大约 10 点后,程序停止,并停留在类似无限循环的状态。 我想我应该关闭一些东西,但是什么? 这是我的代码:
private ResultSet sendCommand(String command) throws SQLException
try(Statement statement = _neo4jConnection.createStatement())
return statement.executeQuery(command);
以及调用此代码的函数(所有函数都基于相同的结构)
public static Long createNode(NodeLabel labelName)
try
ResultSet rs = getInstance().sendCommand("CREATE (n:"+labelName+") RETURN id(n)");
Long result= rs.next()?rs.getLong("id(n)"):null;
rs.close();
return result;
catch (SQLException e)
e.printStackTrace();
return null;
【问题讨论】:
有趣的是,我今天处理了完全相同的问题。将尝试一些池化实验,例如通过 tomcat 的 jdbc-pool 并报告回来。 嗨 Stefan,感谢您的支持 :) 你认为,我们应该为每个语句打开和关闭连接(或者在特定数字之后更少?)。 【参考方案1】:在我最近的实验中,我多次重复使用相同的语句,不确定这是最好的方法,但它似乎也很有效。
https://github.com/peterneubauer/blogs/tree/master/csv_jdbc,代码https://github.com/peterneubauer/blogs/blob/master/csv_jdbc/src/test/java/org/neo4j/jdbctest/JDBCTest.java
【讨论】:
嗨,彼得,谢谢,但甚至无法考虑。几乎我所有的陈述都是不同的,在特定数据(节点的id,条件......)方面更少【参考方案2】:我找到的唯一解决方案是定期断开并重新连接到数据库(大约 20 条语句后)。这很糟糕,但它确实有效。 好吧,不过,我放弃了jdbc for neo4j,问题太多,而且性能灾难性(大约1s才能得到一个简单的数据),出现的问题还有更多!
不管怎样,谢谢你的帮助
尼可
【讨论】:
以上是关于neo4j:在 java 中发送的有限查询的主要内容,如果未能解决你的问题,请参考以下文章