2013-04-08 96 views
0

我正在開發一個基於Spring Data Neo4j的使用存儲庫方法的項目。問題是我無法同時讀取和寫入圖形(這是我的應用程序所需的),因爲我得到這個錯誤,否則。我的Neo4j服務器實例沒有運行,但我有不同的進程嘗試使用數據庫(即:相同的應用程序上下文在不同的主要方法中加載,這裏應該可能是問題,我不知道)。我習慣於關係數據庫,很難理解這種行爲。哪種方法可以解決這個問題?或者,它實際上可能嗎?Neo4j:鎖定商店

這是我的應用程序上下文文件的一部分:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:context="http://www.springframework.org/schema/context" 
      xmlns:mongo="http://www.springframework.org/schema/data/mongo" 
      xmlns:neo4j="http://www.springframework.org/schema/data/neo4j" 
      xsi:schemaLocation= 
      "http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd 
      http://www.springframework.org/schema/data/mongo 
      http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd 
      http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/data/neo4j 
      http://www.springframework.org/schema/data/neo4j/spring-neo4j-2.0.xsd"> 

      <!-- Neo4j --> 
      <neo4j:config storeDirectory="/data/production/graph.db"/> 
      <neo4j:repositories base-package="org.domain.project.repositories.neo4j"/> 

在這種情況下,我能夠訪問neo4jOperations接口在我的自定義Neo4j的倉庫實現,沒有問題構建查詢。另一方面,當前用戶有權訪問數據文件夾,所以這應該不成問題。

回答

0

你不能從兩個程序寫入相同的Neo4j數據庫。相反,您應該設置Neo4j HA羣集,並將其中一個羣集實例用作SDN的嵌入式數據庫。複製等將對您的應用程序透明。詳情請參閱https://groups.google.com/forum/?fromgroups=#!topic/neo4j/6mxSvhemd8M

+0

將使用REST API(服務器實例運行到某處可到達)另一個選項? – jarandaf 2013-04-08 14:30:32

+1

@Turquesa是的,它允許多個客戶端編寫,但是在使用REST api時,您放棄了某些事情,例如管理事務的能力。 – Nicholas 2013-04-08 15:13:16

+0

好吧,這對我來說不是一個有效的解決方案,因爲在某些時候我需要使用Neo4j Java API本身來執行大量的插入操作,而且我正在管理事務(存儲庫中的save方法會帶來巨大的開銷)。感謝您的意見。 – jarandaf 2013-04-08 15:45:11