既存の neo4j データベースを新しいマシンにロードしようとしています。古いマシンは 1.9.M05 を実行していましたが、新しいマシンは 1.9RC1 を実行しています。古いインストールから新しいインストールに data/graph.db ファイルをコピーしただけです。
サーバーは正常に起動し、webadmin インターフェイスはすべて正常に動作しているように見えます。
ただし、Java から EmbeddedDatabase としてデータベースにアクセスしようとすると、mapped_memory プロパティを解析できないという以下のエラーが表示されます。コードベースとneo4jソースで「94M」の「悪い値」をgrepすると、それについての言及が見つかりません。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)