[英]How to set Neo4J config keys in gremlin-scala?
當獨立運行Neo4J數據庫服務器時(在Ubuntu 14.04上),將在etc/neo4j/neo4j.conf
或可能的$NEO4J_HOME/conf/neo4j.conf
為全局安裝設置配置選項 。
但是,當使用Apache的Neo4jGraph
類( org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph
)從Java或Scala實例化Neo4j數據庫時,沒有全局安裝,並且構造函數沒有( 據我所知 )查找任何配置文件。
特別是,在為我的應用程序運行測試套件時,最終會Neo4jGraph
許多Neo4jGraph
並發實例,最終會拋出java.net.BindException: Address already in use
因為所有這些實例都試圖在很小的范圍內進行通信在線備份的端口數,我實際上並不需要。 這些通道使用配置選項dbms.backup.address
(默認值: 127.0.0.1:6362-6372
: dbms.backup.enabled
)和dbms.backup.enabled
(默認值: true
)設置。
通過將dbms.backup.enabled
設置為false
或擴展端口范圍,可以解決我的問題。
無效的事情:
創建/etc/neo4j/neo4j.conf
包含行dbms.backup.enabled=false
。
在項目的src/main/resources
目錄中創建相同的文件。
在src/main/resources/neo4j
創建相同的文件。
在Scala代碼中手動設置配置屬性:
val db = new Neo4jGraph(dataDirectory) db.configuration.addProperty("dbms.backup.enabled",false)
db.configuration.addProperty("neo4j.conf.dbms.backup.enabled",false)
db.configuration.addProperty("gremlin.neo4j.conf.dbms.backup.enabled",false)
我應該如何設置此屬性?
在數據庫連接已經打開之后操作db.configuration
絕對是徒勞的。
斯蒂芬·馬萊特 ( Stephen Mallette )的答案是正確的,但是這種特殊的配置似乎並沒有像他所鏈接的例子那樣通過。 neo4j.conf
預期的配置密鑰與neo4j.conf
預期的配置密鑰之間存在命名不匹配的org.neo4j.backup.OnlineBackupKernelExtension
。 dbms.backup.address
代替dbms.backup.address
和dbms.backup.enabled
來查找配置鍵online_backup_server
和online_backup_enabled
。
我無法將這些鍵正確傳遞到基礎Neo4jGraphAPI
實例。 相反,我要做的是以下幾點:
import org.neo4j.tinkerpop.api.impl.Neo4jFactoryImpl
import scala.collection.JavaConverters._
val factory = new Neo4jFactoryImpl()
val config = Map(
"online_backup_enabled" -> "true",
"online_backup_server" -> "0.0.0.0:6350-6359"
).asJava
val db = Neo4jGraph.open(factory.newGraphDatabase(dataDirectory,config))
通過此初始化,該實例正確偵聽了端口6350上的備份; 將"true"
更改為"false"
禁用備份偵聽。
使用Neo4j 3.0.0,以下內容將禁用我的端口偵聽(Java代碼)
import org.apache.commons.configuration.BaseConfiguration;
import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
BaseConfiguration conf = new BaseConfiguration();
conf.setProperty(Neo4jGraph.CONFIG_DIRECTORY, "/path/to/db");
conf.setProperty(Neo4jGraph.CONFIG_CONF + "." + "dbms.backup.enabled", "false");
graph = Neo4jGraph.open(config);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.