我一直在嘗試使用帶有1個CPU和1GB RAM的SpringDataNeo4j(SDN)同時加載測試。 對於'GET'(讀取)請求,可以測試1000個線程,並且加速時間爲1秒。 對於'POST'(寫入)請求,但只能使用18個線程以1秒的斜升進行測試,超出此線程。我們面臨着死鎖例外:如何避免同時保存數據的彈簧數據neo4j ogm中的死鎖
造成的:org.neo4j.ogm.exception.CypherException:錯誤執行暗號 「Neo.TransientError.Transaction.DeadlockDetected」;代碼:Neo.TransientError.Transaction.DeadlockDetected;描述:LockClient [1081]不能等待資源RWLock [NODE(97),hash = 108078135],因爲=> LockClient < - [:HELD_BY] - RWLock [NODE(98),hash = 1267379687] < - [:WAITING_FOR] - LockClient [1076] < - [:HELD_BY] - rwlock中[NODE(97),散列= 108078135]
我所提到 http://neo4j.com/docs/java-reference/current/#transactions-deadlocks
TransactionTemplate template = new TransactionTemplate().retries(5).backoff(3, TimeUnit.SECONDS);
對於saveService,我使用默認@Transactional
,雖然我無法在測試代碼中複製TransactionTemplate
。我使用我的DataSourceFactory配置。
@Configuration
@PropertySource(value = { "classpath:ogm.properties" }
@EnableNeo4jRepositories(basePackages = "com.my.graph.repository")
@EnableTransactionManagement
任何建議!
在此先感謝!
什麼是您在寫測試中使用的Cypher語法? –
我在這方面沒有使用密碼。我正在使用OGM的'Dao.save(node)'API擴展GraphRepository – SriRamaChandra