我在本地机器上使用neo4j已经有一段时间了,它似乎工作得很好,但是突然间,对于一个特定的查询,我得到了这个错误消息(所有其他查询都正常工作):
WebSocket连接失败。由于web浏览器中的安全限制,此Neo4j驱动程序无法使用故障原因。请使用浏览器开发控制台确定故障的根本原因。常见的原因包括数据库不可用、使用错误的连接URL或临时网络问题。如果已启用加密,请确保浏览器配置为信任配置为使用的证书Neo4j。WebSocket readyState是:3
我试图运行的查询是:
match (p:Node1)-[c:Relation]->(q:Node2)
SET c.attribute = false;所有其他查询都正常工作,我可以设置我想要的任何属性,只是对于这个查询,控制台计算一段时间,pc开始滞后,然后抛出异常。也许这是个暂停问题还是什么?
我在几篇文章中看到,这可能与我的Java版本有关?我使用的是oracle-8 java版本:
"1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)有人知道我能尝试什么吗?
我还试着在conf文件中取消对这些行的注释,但是没有帮助。
# You can also choose a specific advertised hostname or IP address, and
# configure an advertised port for each connector, by setting their
# individual advertised_address.
# Bolt connector
dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
dbms.connector.bolt.listen_address=0.0.0.0:7687非常感谢您的想法和建议。
干杯
发布于 2018-03-13 09:54:46
看到您有大约2500万的关系需要处理,在一个事务中执行所有这些都是行不通的。这种规模的写入操作需要批处理,以避免引发堆或挂起Neo4j。
载脂蛋白C程序是您在这里的最佳选择,它支持接受输入查询和对该输入分批执行操作。。
下面是如何将其用于查询:
CALL apoc.periodic.iterate(
"match (:Node1)-[c:Relation]->(:Node2)
return c",
"SET c.attribute = false",
{iterateList:true, parallel:false}) YIELD batches, errorMessages
RETURN *发布于 2018-03-09 21:23:56
编辑文件$NEO4J_HOME/conf/neo4j.conf并取消对行dbms.connector.bolt.address=0.0.0.0:7687的注释。然后,重新启动Neo4j。
https://stackoverflow.com/questions/49198388
复制相似问题