0
您好,我在分佈式環境中使用orientdb,其中有兩個orientdb服務器實例,比如dbSrv-1和dbSrv-2。我按照以下tutorial設置分佈式數據庫,它工作正常。設置orientdb的連接重試限制
但是我面臨的問題是當一個節點關閉並且java客戶端試圖連接到那個特定的節點時,在這種情況下,客戶端似乎陷入了無限循環的連接重試中。 我已經嘗試設置orientdb通過命令行全局設置是這樣的:
java -Dnetwork.retry=1
也嘗試在運行時這樣
OGlobalConfiguration.NETWORK_SOCKET_RETRY.setValue(1);
設置,但沒有什麼似乎並沒有工作。以下是代碼來打開一個數據庫連接:
db = new ODatabaseDocumentTx("remote:localhost/mydb").open("admin", "admin");
Java異常痕跡如下:
Oct 15, 2015 8:03:48 PM com.orientechnologies.common.log.OLogManager log
SEVERE: Can not open database with url localhost:2424/mydb
com.orientechnologies.common.io.OIOException: Cannot open a connection to remote server: localhost:2424/mydb
at com.orientechnologies.orient.client.remote.OStorageRemote.getAvailableNetwork(OStorageRemote.java:2114)
at com.orientechnologies.orient.client.remote.OStorageRemote.openRemoteDatabase(OStorageRemote.java:1841)
at com.orientechnologies.orient.client.remote.OStorageRemote.open(OStorageRemote.java:222)
at com.orientechnologies.orient.client.remote.OStorageRemoteThread.open(OStorageRemoteThread.java:89)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.open(ODatabaseDocumentTx.java:249)
at com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPolled.internalOpen(OPartitionedDatabasePool.java:140)
at com.orientechnologies.orient.core.db.OPartitionedDatabasePool.openDatabase(OPartitionedDatabasePool.java:343)
at com.orientechnologies.orient.core.db.OPartitionedDatabasePool.acquire(OPartitionedDatabasePool.java:313)
at com.worldhubcom.cc.mydb.db.DatabaseHelper.getDatabase(DatabaseHelper.java:45)
at com.worldhubcom.cc.mydb.db.SubscriberDao.save(SubscriberDao.java:35)
at com.worldhubcom.cc.mydb.authen.ServiceAuthenticate.main(ServiceAuthenticate.java:24)
Caused by: com.orientechnologies.common.io.OIOException: Error on connecting to localhost:2424/mydb
at com.orientechnologies.orient.client.remote.ORemoteConnectionManager.createNetworkConnection(ORemoteConnectionManager.java:246)
at com.orientechnologies.orient.client.remote.ORemoteConnectionManager$1.createNewResource(ORemoteConnectionManager.java:80)
at com.orientechnologies.orient.client.remote.ORemoteConnectionManager$1.createNewResource(ORemoteConnectionManager.java:77)
at com.orientechnologies.common.concur.resource.OResourcePool.getResource(OResourcePool.java:94)
at com.orientechnologies.orient.client.remote.ORemoteConnectionManager.acquire(ORemoteConnectionManager.java:101)
at com.orientechnologies.orient.client.remote.OStorageRemote.getAvailableNetwork(OStorageRemote.java:2103)
... 10 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:83)
at com.orientechnologies.orient.client.remote.ORemoteConnectionManager.createNetworkConnection(ORemoteConnectionManager.java:233)
... 15 more
哪個版本? Java客戶端應自動切換到下一個可用節點。你能分享這個問題的任何日誌嗎?謝謝。 – Lvca
@Lvca我添加了異常,並且我正在使用的orientdb-graphdb java客戶端是2.1.0 – Waqas
您確定2個節點已啓動並正在運行嗎?你可以在啓動時附加初始日誌嗎? – Lvca