Neo4j 2.3.1没有在导入文件上释放句柄

时间:2016-01-20 15:44:22

标签: neo4j

在使用Java 8.45的Windows Server 2012 R2上从Neo4j 2.2.5升级到Neo4j 2.3.1后,我们遇到了文件句柄问题。当使用web界面或neo4jshell.bat运行本文底部显示的命令时,cypher成功完成,并且进程监视器跟踪确认Java已成功关闭该文件。但是,我无法移动该csv文件,因为该文件在另一个进程中打开。 Handle.exe确认Java仍然具有该文件的读写句柄。

当我在具有相同文件的同一台机器上对Neo4j 2.2.5图形运行相同的进程时,Java不保留csv文件上的读写句柄。在此问题得到解决之前,我们需要恢复到2.2.5。我们在从2.2.5升级到2.3.1期间进行的唯一应用程序更改是为了适应新的文件引用格式(file:/// x://filename.csv与file:x:/filename.csv)。

我们可以采取其他措施来重启服务或停止并启动驱动器以强制Java关闭此文件吗?我理解Neo4jShell.bat不赞成使用powershell命令,但最终问题是Java保留了文件句柄,因此更改提供cypher命令的方法无法改进Java处理csv的方式文件。我从网络界面和neoj4shell.bat运行相同的密码,得到了相同的结果。

USING PERIODIC COMMIT 3000
LOAD CSV WITH HEADERS
FROM "file:///x://filename.csv"
AS line
MATCH (a:node {id : line.id}), (b:othernode {id : line.other_id})
WITH a, b
WHERE shortestPath((a)-[:PREVIOUS]->(b)) is null
CREATE (a)-[:PREVIOUS]->(b);

0 个答案:

没有答案