我有兩個線程,第一個使用搜集器收集數據並創建Neo4j圖形數據庫,第二個每十分鐘執行一些查詢,比如到目前爲止添加了多少個節點爲了分析圖表。我的問題是,當第一個線程運行時,我無法運行第二個線程,因爲我無法創建數據庫的新實例。它返回以下錯誤:創建兩個相同Neo4j數據庫的實例
Exception in thread "Thread-6" java.lang.RuntimeException: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]' was successfully initialized, but failed to start. Please see attached cause exception.
at com.tinkerpop.blueprints.impls.neo4j.Neo4jGraph.<init>(Neo4jGraph.java:165)
at com.tinkerpop.blueprints.impls.neo4j.Neo4jGraph.<init>(Neo4jGraph.java:135)
at main.AnalyzeGraph.run(AnalyzeGraph.java:28)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]' was successfully initialized, but failed to start. Please see attached cause exception.
at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:281)
at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:106)
at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:81)
at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:63)
at com.tinkerpop.blueprints.impls.neo4j.Neo4jGraph.<init>(Neo4jGraph.java:155)
... 3 more
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]' was successfully initialized, but failed to start. Please see attached cause exception.
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:497)
at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:104)
at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:259)
... 7 more
Caused by: org.neo4j.kernel.StoreLockException: Unable to obtain lock on store lock file: /home/sotbeis/Desktop/neo4jDB/store_lock. Please ensure no other process is using this database, and that the directory is writable (required even for read-only access)
at org.neo4j.kernel.StoreLocker.checkLock(StoreLocker.java:79)
at org.neo4j.kernel.StoreLockerLifecycleAdapter.start(StoreLockerLifecycleAdapter.java:40)
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:491)
... 9 more
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1056)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1154)
at org.neo4j.kernel.impl.nioneo.store.FileLock.getOsSpecificFileLock(FileLock.java:83)
at org.neo4j.kernel.DefaultFileSystemAbstraction.tryLock(DefaultFileSystemAbstraction.java:83)
at org.neo4j.kernel.StoreLocker.checkLock(StoreLocker.java:70)
... 11 more
有沒有辦法解決這個問題?請注意,我無法將第一個neo4j圖形數據庫實例傳遞給第二個線程。
我使用blueprints-neo4j-graph 2.4.0。
編輯:我使用的嵌入式版本
如果我使用服務版本,是否可以按照描述進行操作? – salvador
在這種情況下,您通過REST端點進行連接(除非您通過插件/擴展完成所有事情,這不太可能),所以不會出現相同的問題。換句話說,您不太可能使用相同的代碼來連接服務器實例(例如,通過Jersey客戶端或其他綁定(如Neo4j JDBC,Neo4j REST綁定或類似於Spring Data for Neo4j)。 – BtySgtMajor