我正在尝试在新机器上加载现有的neo4j数据库。旧机器运行1.9.M05,而新机器运行1.9RC1。我只是将data / graph.db文件从旧安装复制到新安装。
服务器启动正常,webadmin界面看起来一切正常。
但是,当我尝试从Java访问数据库作为EmbeddedDatabase时,我得到以下错误,说它无法解析mapped_memory属性。当我在代码库和neo4j源代码中找到“94M”的“坏值”时,我找不到它的任何提及。 webadmin接口报告mapped_memory属性设置为45M。
如果db文件中存储了错误的值,是否有办法在加载损坏的设置之前强制指定.props文件?
主叫代码:
GraphDatabaseFactory factory =
new org.neo4j.graphdb.factory.GraphDatabaseFactory();
GraphDatabaseService graphDb = factory
.newEmbeddedDatabaseBuilder(DB_PATH)
.loadPropertiesFromFile(NEO_HOME + "conf/neo4j.properties" )
.newGraphDatabase();
例外:
[java] Exception in thread "main" java.lang.IllegalArgumentException: Bad value '-94M' for setting 'neostore.propertystore.db.strings.mapped_memory': value does not match expression:\d+[kmgKMG]?
[java] at org.neo4j.helpers.Settings$DefaultSetting.apply(Settings.java:788)
[java] at org.neo4j.helpers.Settings$DefaultSetting.apply(Settings.java:708)
[java] at org.neo4j.graphdb.factory.GraphDatabaseSetting$SettingWrapper.apply(GraphDatabaseSetting.java:215)
[java] at org.neo4j.graphdb.factory.GraphDatabaseSetting$SettingWrapper.apply(GraphDatabaseSetting.java:189)
[java] at org.neo4j.kernel.configuration.ConfigurationValidator.validate(ConfigurationValidator.java:50)
[java] at org.neo4j.kernel.configuration.Config.applyChanges(Config.java:121)
[java] at org.neo4j.kernel.InternalAbstractGraphDatabase.create(InternalAbstractGraphDatabase.java:337)
[java] at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:254)
[java] at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:90)
[java] at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:85)
[java] at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:205)
[java] at com.mycompany.CMDRunner.printNeoSegments(CMDRunner.java:27)
答案 0 :(得分:2)
检查你的neo4j.properties是否为neostore.propertystore.db.strings.mapped_memory
,因为这似乎是你的问题所在。
答案 1 :(得分:2)
此错误消息可能是Neo4j中的一个错误,只有在没有足够的物理RAM可用时才会发生。应该有一个更好的错误信息,清楚地表明阻止启动的原因。
尝试为您的计算机添加更多物理RAM,我建议使用1 GB或更多。