Search code examples
javaorientdbhazelcast

Upgrading orientdb from 2.1.15 to 2.2.28 in distributed mode


I am trying to upgrade orientdb version from 2.1.15 to 2.2.28 in distributed setup: node1 (MASTER) and node2 (MASTER).

Upgrade process:
1. Stop orientdb service on node1 and node
2. Upgrading node1
   2.1 Copy the existing database in ~/tmp folder.
   2.2 Download Orientdb v2.2.28 copy all the files in existing Orientdb folder.
   2.3 Copy the existing database from ~/tmp to orientdb working dir.
   2.4 Run node1 as standalone server (not in distributed mode)
   2.5 Stop node1
   2.6 Config node1 to run in distributed mode and run node 1 in distributed mode
3. Upgrade node2 following same steps as in node1

File modified to run in distributed mode

hazelcast.xml

<network>
   <port auto-increment="false">3000</port>
   <join>
      <multicast enabled="false">
         <multicast-group>235.1.1.1</multicast-group>
         <multicast-port>2434</multicast-port>
      </multicast>
      <tcp-ip enabled="true">
         <member>node1:3000</member>
         <member>node2:3000</member>
      </tcp-ip>
   </join>
</network>

default-distributed-db-config.json

{
  "autoDeploy": true,
  "readQuorum": 1,
  "writeQuorum": "majority",
  "executionMode": "undefined",
  "readYourWrites": true,
  "newNodeStrategy": "static",
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "*": {
      "servers": ["node1","node2"]
    }
  }
}

But I am getting a error node2 which joins the cluster after node1

2017-11-29 10:57:10:140 INFO  [node2] Servers in cluster: [node1, node2] [OHazelcastPlugin][node2] Error on starting distributed plugin
java.net.NoRouteToHostException: No route to host
    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.client.binary.OChannelBinaryClientAbstract.<init>(OChannelBinaryClientAbstract.java:70)
    at com.orientechnologies.orient.client.binary.OChannelBinarySynchClient.<init>(OChannelBinarySynchClient.java:32)
    at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.connect(ORemoteServerChannel.java:111)
    at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.<init>(ORemoteServerChannel.java:75)
    at com.orientechnologies.orient.server.distributed.ORemoteServerController.<init>(ORemoteServerController.java:53)
    at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.getRemoteServer(OHazelcastPlugin.java:653)
    at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:250)
    at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:1257)
    at com.orientechnologies.orient.server.OServer.activate(OServer.java:406)
    at com.orientechnologies.orient.server.OServerMain$1.run(OServerMain.java:46)
com.orientechnologies.orient.server.distributed.ODistributedStartupException: Error on starting distributed plugin
    at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:311)
    at com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:1257)
    at com.orientechnologies.orient.server.OServer.activate(OServer.java:406)
    at com.orientechnologies.orient.server.OServerMain$1.run(OServerMain.java:46)
Caused by: java.net.NoRouteToHostException: No route to host
    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.client.binary.OChannelBinaryClientAbstract.<init>(OChannelBinaryClientAbstract.java:70)
    at com.orientechnologies.orient.client.binary.OChannelBinarySynchClient.<init>(OChannelBinarySynchClient.java:32)
    at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.connect(ORemoteServerChannel.java:111)
    at com.orientechnologies.orient.server.distributed.ORemoteServerChannel.<init>(ORemoteServerChannel.java:75)
    at com.orientechnologies.orient.server.distributed.ORemoteServerController.<init>(ORemoteServerController.java:53)
    at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.getRemoteServer(OHazelcastPlugin.java:653)
    at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.startup(OHazelcastPlugin.java:250)
    ... 3 more

Is this correct way to upgrade orientdb running in distributed mode? or this is something related to built 2.2.28 (as it starts to work again if I downgrade to 2.2.15 from 2.2.28 using the same up-gradation process).

It would great if anyone can point me to the right direction.


Solution

  • So you need to fix that first. Nodes should be able to see each other (or ping each other) on configured IPs/DNS, port etc. If 3000 is not reachable then try some other port.