Can you share the hazelcast.xml?
On Tue, Aug 5, 2014 at 7:17 PM, Nirmal Fernando <[email protected]> wrote: > Thanks Azeez. Yes, that would be my next step. > > > On Tue, Aug 5, 2014 at 7:14 PM, Afkham Azeez <[email protected]> wrote: > >> Looks ok. Rather than creating multiple Hz instances within the same JVM, >> you should be creating a single Hz instance per JVM to replicate our >> clustering implementation more closely. >> >> >> On Tue, Aug 5, 2014 at 9:17 AM, Nirmal Fernando <[email protected]> wrote: >> >>> Hi Azeez, >>> >>> I ran the following test case and results showed that members whose >>> static initial members are shutdown, can still see new members. Let me know >>> if you see any issue in this test case. >>> >>> *TEST* >>> >>> public static void main(String[] args) { >>> System.setProperty("hazelcast.config", >>> "src/main/resources/hazelcast.xml"); >>> // Build Hazelcast cluster >>> System.out.println("Starting instance h1"); >>> HazelcastInstance h1 = Hazelcast.newHazelcastInstance(); >>> System.out.println("Starting instance h2"); >>> >>> HazelcastInstance h2 = Hazelcast.newHazelcastInstance(); >>> >>> IMap<String, String> map1 = h1.getMap("map"); >>> map1.put("nirmal", "fernando"); >>> >>> IMap<String, String> map2 = h2.getMap("map"); >>> System.out.println("from h2: " + map2.get("nirmal")); >>> map2.set("nirmal", "fdo"); >>> System.out.println("from h1: " + map1.get("nirmal")); >>> >>> System.out.println("Starting instance h3"); >>> HazelcastInstance h3 = Hazelcast.newHazelcastInstance(); >>> System.out.println("members of h1 : >>> "+h1.getCluster().getMembers().size()); >>> System.out.println("members of h2: >>> "+h2.getCluster().getMembers().size()); >>> System.out.println("members of h3: >>> "+h3.getCluster().getMembers().size()); >>> >>> h1.getLifecycleService().shutdown(); >>> System.out.println("Stopping instance h1"); >>> h2.getLifecycleService().shutdown(); >>> System.out.println("Stopping instance h2"); >>> >>> System.out.println("members of h3 after h1 is down: >>> "+h3.getCluster().getMembers().size()); >>> >>> HazelcastInstance h4 = Hazelcast.newHazelcastInstance(); >>> System.out.println("Starting instance h4"); >>> >>> System.out.println("members of h3 after h4 is up : >>> "+h3.getCluster().getMembers().size()); >>> System.out.println("members of h4 after h4 is up : >>> "+h4.getCluster().getMembers().size()); >>> >>> System.exit(0); >>> } >>> >>> *RESULT* >>> >>> Starting instance h1 >>> Starting instance h2 >>> Starting instance h3 >>> >>> members of h1 : 3 >>> members of h2: 3 >>> members of h3: 3 >>> >>> Stopping instance h1 >>> Stopping instance h2 >>> members of h3 after h1 is down: 1 >>> >>> Starting instance h4 >>> members of h3 after h4 is up : 2 >>> members of h4 after h4 is up : 2 >>> >>> >>> *DETAILED RESULT* >>> >>> Starting instance h1 >>> Aug 5, 2014 12:35:11 AM com.hazelcast.config.XmlConfigBuilder >>> INFO: Using configuration file at >>> /wso2/workspace/HazelcastTest/src/main/resources/hazelcast.xml >>> Aug 5, 2014 12:35:11 AM com.hazelcast.config.XmlConfigBuilder >>> INFO: Using configuration file at >>> /wso2/workspace/HazelcastTest/src/main/resources/hazelcast.xml >>> Aug 5, 2014 12:35:11 AM com.hazelcast.instance.DefaultAddressPicker >>> INFO: null [dev] [3.2.4] Interfaces is disabled, trying to pick one >>> address from TCP-IP config addresses: [127.0.0.1] >>> Aug 5, 2014 12:35:11 AM com.hazelcast.instance.DefaultAddressPicker >>> INFO: null [dev] [3.2.4] Picked Address[127.0.0.1]:5701, using socket >>> ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5701], bind any local is true >>> Aug 5, 2014 12:35:12 AM com.hazelcast.system >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Hazelcast 3.2.4 (20140721) starting >>> at Address[127.0.0.1]:5701 >>> Aug 5, 2014 12:35:12 AM com.hazelcast.system >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Copyright (C) 2008-2014 >>> Hazelcast.com >>> Aug 5, 2014 12:35:12 AM com.hazelcast.instance.Node >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Creating TcpIpJoiner >>> Aug 5, 2014 12:35:12 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Address[127.0.0.1]:5701 is STARTING >>> Aug 5, 2014 12:35:12 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connecting to possible member: >>> Address[127.0.0.1]:5703 >>> Aug 5, 2014 12:35:12 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connecting to possible member: >>> Address[127.0.0.1]:5702 >>> Aug 5, 2014 12:35:12 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connecting to /127.0.0.1:5702, >>> timeout: 0, bind-any: true >>> Aug 5, 2014 12:35:12 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connecting to /127.0.0.1:5703, >>> timeout: 0, bind-any: true >>> Aug 5, 2014 12:35:12 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Could not connect to: / >>> 127.0.0.1:5703. Reason: SocketException[Connection refused to address / >>> 127.0.0.1:5703] >>> Aug 5, 2014 12:35:12 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Could not connect to: / >>> 127.0.0.1:5702. Reason: SocketException[Connection refused to address / >>> 127.0.0.1:5702] >>> Aug 5, 2014 12:35:13 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] >>> >>> >>> Members [1] { >>> Member [127.0.0.1]:5701 this >>> } >>> >>> Starting instance h2 >>> Aug 5, 2014 12:35:13 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Address[127.0.0.1]:5701 is STARTED >>> Aug 5, 2014 12:35:13 AM com.hazelcast.config.XmlConfigBuilder >>> INFO: Using configuration file at >>> /wso2/workspace/HazelcastTest/src/main/resources/hazelcast.xml >>> Aug 5, 2014 12:35:13 AM com.hazelcast.config.XmlConfigBuilder >>> INFO: Using configuration file at >>> /wso2/workspace/HazelcastTest/src/main/resources/hazelcast.xml >>> Aug 5, 2014 12:35:13 AM com.hazelcast.instance.DefaultAddressPicker >>> INFO: null [dev] [3.2.4] Interfaces is disabled, trying to pick one >>> address from TCP-IP config addresses: [127.0.0.1] >>> Aug 5, 2014 12:35:13 AM com.hazelcast.instance.DefaultAddressPicker >>> INFO: null [dev] [3.2.4] Picked Address[127.0.0.1]:5702, using socket >>> ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5702], bind any local is true >>> Aug 5, 2014 12:35:13 AM com.hazelcast.system >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Hazelcast 3.2.4 (20140721) starting >>> at Address[127.0.0.1]:5702 >>> Aug 5, 2014 12:35:13 AM com.hazelcast.system >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Copyright (C) 2008-2014 >>> Hazelcast.com >>> Aug 5, 2014 12:35:13 AM com.hazelcast.instance.Node >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Creating TcpIpJoiner >>> Aug 5, 2014 12:35:13 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Address[127.0.0.1]:5702 is STARTING >>> Aug 5, 2014 12:35:13 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Connecting to possible member: >>> Address[127.0.0.1]:5703 >>> Aug 5, 2014 12:35:13 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Connecting to possible member: >>> Address[127.0.0.1]:5701 >>> Aug 5, 2014 12:35:13 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Connecting to /127.0.0.1:5703, >>> timeout: 0, bind-any: true >>> Aug 5, 2014 12:35:13 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Connecting to /127.0.0.1:5701, >>> timeout: 0, bind-any: true >>> Aug 5, 2014 12:35:13 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Could not connect to: / >>> 127.0.0.1:5703. Reason: SocketException[Connection refused to address / >>> 127.0.0.1:5703] >>> Aug 5, 2014 12:35:13 AM com.hazelcast.nio.SocketAcceptor >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Accepting socket connection from / >>> 127.0.0.1:50666 >>> Aug 5, 2014 12:35:13 AM com.hazelcast.nio.TcpIpConnectionManager >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] 5701 accepted socket connection >>> from /127.0.0.1:50666 >>> Aug 5, 2014 12:35:13 AM com.hazelcast.nio.TcpIpConnectionManager >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] 50666 accepted socket connection >>> from /127.0.0.1:5701 >>> Aug 5, 2014 12:35:19 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] >>> >>> Members [2] { >>> >>> Member [127.0.0.1]:5701 this >>> Member [127.0.0.1]:5702 >>> } >>> >>> Aug 5, 2014 12:35:19 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] >>> >>> Members [2] { >>> >>> Member [127.0.0.1]:5701 >>> Member [127.0.0.1]:5702 this >>> } >>> >>> Aug 5, 2014 12:35:21 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Address[127.0.0.1]:5702 is STARTED >>> Aug 5, 2014 12:35:21 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Initializing cluster partition >>> table first arrangement... >>> from h2: fernando >>> from h1: fdo >>> Starting instance h3 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.config.XmlConfigBuilder >>> INFO: Using configuration file at >>> /wso2/workspace/HazelcastTest/src/main/resources/hazelcast.xml >>> Aug 5, 2014 12:35:26 AM com.hazelcast.config.XmlConfigBuilder >>> INFO: Using configuration file at >>> /wso2/workspace/HazelcastTest/src/main/resources/hazelcast.xml >>> Aug 5, 2014 12:35:26 AM com.hazelcast.instance.DefaultAddressPicker >>> INFO: null [dev] [3.2.4] Interfaces is disabled, trying to pick one >>> address from TCP-IP config addresses: [127.0.0.1] >>> Aug 5, 2014 12:35:26 AM com.hazelcast.instance.DefaultAddressPicker >>> INFO: null [dev] [3.2.4] Picked Address[127.0.0.1]:5703, using socket >>> ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5703], bind any local is true >>> Aug 5, 2014 12:35:26 AM com.hazelcast.system >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Hazelcast 3.2.4 (20140721) starting >>> at Address[127.0.0.1]:5703 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.system >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Copyright (C) 2008-2014 >>> Hazelcast.com >>> Aug 5, 2014 12:35:26 AM com.hazelcast.instance.Node >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Creating TcpIpJoiner >>> Aug 5, 2014 12:35:26 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Address[127.0.0.1]:5703 is STARTING >>> Aug 5, 2014 12:35:26 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Connecting to possible member: >>> Address[127.0.0.1]:5702 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Connecting to possible member: >>> Address[127.0.0.1]:5701 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Connecting to /127.0.0.1:5702, >>> timeout: 0, bind-any: true >>> Aug 5, 2014 12:35:26 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Connecting to /127.0.0.1:5701, >>> timeout: 0, bind-any: true >>> Aug 5, 2014 12:35:26 AM com.hazelcast.nio.SocketAcceptor >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Accepting socket connection from / >>> 127.0.0.1:57737 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.nio.SocketAcceptor >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Accepting socket connection from / >>> 127.0.0.1:46497 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.nio.TcpIpConnectionManager >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] 57737 accepted socket connection >>> from /127.0.0.1:5702 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.nio.TcpIpConnectionManager >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] 5701 accepted socket connection >>> from /127.0.0.1:46497 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.nio.TcpIpConnectionManager >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] 46497 accepted socket connection >>> from /127.0.0.1:5701 >>> Aug 5, 2014 12:35:26 AM com.hazelcast.nio.TcpIpConnectionManager >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] 5702 accepted socket connection >>> from /127.0.0.1:57737 >>> Aug 5, 2014 12:35:32 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] >>> >>> Members [3] { >>> Member [127.0.0.1]:5701 >>> Member [127.0.0.1]:5702 this >>> Member [127.0.0.1]:5703 >>> } >>> >>> Aug 5, 2014 12:35:32 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] >>> >>> Members [3] { >>> Member [127.0.0.1]:5701 >>> Member [127.0.0.1]:5702 >>> Member [127.0.0.1]:5703 this >>> } >>> >>> Aug 5, 2014 12:35:32 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] >>> >>> Members [3] { >>> Member [127.0.0.1]:5701 this >>> Member [127.0.0.1]:5702 >>> Member [127.0.0.1]:5703 >>> } >>> >>> Aug 5, 2014 12:35:32 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Re-partitioning cluster data... >>> Migration queue size: 90 >>> Aug 5, 2014 12:35:34 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] All migration tasks has been >>> completed, queues are empty. >>> Aug 5, 2014 12:35:34 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Address[127.0.0.1]:5703 is STARTED >>> members of h1 : 3 >>> members of h2: 3 >>> members of h3: 3 >>> Aug 5, 2014 12:35:34 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Address[127.0.0.1]:5701 is >>> SHUTTING_DOWN >>> Aug 5, 2014 12:35:34 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Master Address[127.0.0.1]:5701 left >>> the cluster. Assigning new master Member [127.0.0.1]:5702 >>> Aug 5, 2014 12:35:34 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Master Address[127.0.0.1]:5701 left >>> the cluster. Assigning new master Member [127.0.0.1]:5702 this >>> Aug 5, 2014 12:35:34 AM com.hazelcast.nio.TcpIpConnection >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Connection >>> [Address[127.0.0.1]:5701] lost. Reason: Socket explicitly closed >>> Aug 5, 2014 12:35:34 AM com.hazelcast.nio.TcpIpConnection >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Connection >>> [Address[127.0.0.1]:5701] lost. Reason: Socket explicitly closed >>> Aug 5, 2014 12:35:34 AM com.hazelcast.nio.TcpIpConnection >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connection >>> [Address[127.0.0.1]:5703] lost. Reason: java.io.EOFException[Remote socket >>> closed!] >>> Aug 5, 2014 12:35:34 AM com.hazelcast.nio.TcpIpConnection >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connection >>> [Address[127.0.0.1]:5702] lost. Reason: java.io.EOFException[Remote socket >>> closed!] >>> Aug 5, 2014 12:35:34 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Removing Member [127.0.0.1]:5701 >>> Aug 5, 2014 12:35:34 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Removing Member [127.0.0.1]:5701 >>> Aug 5, 2014 12:35:34 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] >>> >>> Members [2] { >>> >>> Member [127.0.0.1]:5702 >>> Member [127.0.0.1]:5703 this >>> } >>> >>> Aug 5, 2014 12:35:34 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] >>> >>> Members [2] { >>> >>> Member [127.0.0.1]:5702 this >>> Member [127.0.0.1]:5703 >>> } >>> >>> Aug 5, 2014 12:35:34 AM com.hazelcast.initializer >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Destroying node initializer. >>> Aug 5, 2014 12:35:34 AM com.hazelcast.instance.Node >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Hazelcast Shutdown is completed in >>> 45 ms. >>> Aug 5, 2014 12:35:34 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Address[127.0.0.1]:5701 is SHUTDOWN >>> Stopping instance h1 >>> Aug 5, 2014 12:35:34 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Address[127.0.0.1]:5702 is >>> SHUTTING_DOWN >>> Aug 5, 2014 12:35:34 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Waiting for cluster migration >>> tasks: 1 >>> Aug 5, 2014 12:35:35 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Waiting for cluster migration >>> tasks: 1 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Partition balance is ok, no need to >>> re-partition cluster data... >>> Aug 5, 2014 12:35:36 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Master Address[127.0.0.1]:5702 left >>> the cluster. Assigning new master Member [127.0.0.1]:5703 this >>> Aug 5, 2014 12:35:36 AM com.hazelcast.nio.TcpIpConnection >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Connection >>> [Address[127.0.0.1]:5702] lost. Reason: Socket explicitly closed >>> Aug 5, 2014 12:35:36 AM com.hazelcast.nio.TcpIpConnection >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Connection >>> [Address[127.0.0.1]:5703] lost. Reason: java.io.EOFException[Remote socket >>> closed!] >>> Aug 5, 2014 12:35:36 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Removing Member [127.0.0.1]:5702 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] >>> >>> Members [1] { >>> Member [127.0.0.1]:5703 this >>> } >>> >>> Aug 5, 2014 12:35:36 AM com.hazelcast.initializer >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Destroying node initializer. >>> Aug 5, 2014 12:35:36 AM com.hazelcast.instance.Node >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Hazelcast Shutdown is completed in >>> 2035 ms. >>> Aug 5, 2014 12:35:36 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5702 [dev] [3.2.4] Address[127.0.0.1]:5702 is SHUTDOWN >>> Stopping instance h2Aug 5, 2014 12:35:36 AM >>> com.hazelcast.config.XmlConfigBuilder >>> INFO: Using configuration file at >>> /wso2/workspace/HazelcastTest/src/main/resources/hazelcast.xml >>> Aug 5, 2014 12:35:36 AM com.hazelcast.config.XmlConfigBuilder >>> INFO: Using configuration file at >>> /wso2/workspace/HazelcastTest/src/main/resources/hazelcast.xml >>> >>> members of h3 after h1 is down: 1 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.instance.DefaultAddressPicker >>> INFO: null [dev] [3.2.4] Interfaces is disabled, trying to pick one >>> address from TCP-IP config addresses: [127.0.0.1] >>> Aug 5, 2014 12:35:36 AM com.hazelcast.instance.DefaultAddressPicker >>> INFO: null [dev] [3.2.4] Picked Address[127.0.0.1]:5701, using socket >>> ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5701], bind any local is true >>> Aug 5, 2014 12:35:36 AM com.hazelcast.system >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Hazelcast 3.2.4 (20140721) starting >>> at Address[127.0.0.1]:5701 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.system >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Copyright (C) 2008-2014 >>> Hazelcast.com >>> Aug 5, 2014 12:35:36 AM com.hazelcast.instance.Node >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Creating TcpIpJoiner >>> Aug 5, 2014 12:35:36 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Address[127.0.0.1]:5701 is STARTING >>> Aug 5, 2014 12:35:36 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connecting to possible member: >>> Address[127.0.0.1]:5703 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.cluster.TcpIpJoiner >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connecting to possible member: >>> Address[127.0.0.1]:5702 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connecting to /127.0.0.1:5703, >>> timeout: 0, bind-any: true >>> Aug 5, 2014 12:35:36 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Connecting to /127.0.0.1:5702, >>> timeout: 0, bind-any: true >>> Aug 5, 2014 12:35:36 AM com.hazelcast.nio.SocketAcceptor >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Accepting socket connection from / >>> 127.0.0.1:53551 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.nio.TcpIpConnectionManager >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] 53551 accepted socket connection >>> from /127.0.0.1:5703 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.nio.TcpIpConnectionManager >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] 5703 accepted socket connection >>> from /127.0.0.1:53551 >>> Aug 5, 2014 12:35:36 AM com.hazelcast.nio.SocketConnector >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Could not connect to: / >>> 127.0.0.1:5702. Reason: SocketException[Connection refused to address / >>> 127.0.0.1:5702] >>> Aug 5, 2014 12:35:38 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Partition balance is ok, no need to >>> re-partition cluster data... >>> Aug 5, 2014 12:35:42 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] >>> >>> Members [2] { >>> Member [127.0.0.1]:5703 this >>> Member [127.0.0.1]:5701 >>> } >>> >>> Aug 5, 2014 12:35:42 AM com.hazelcast.cluster.ClusterService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] >>> >>> Members [2] { >>> Member [127.0.0.1]:5703 >>> Member [127.0.0.1]:5701 this >>> } >>> >>> Aug 5, 2014 12:35:42 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] Re-partitioning cluster data... >>> Migration queue size: 135 >>> Aug 5, 2014 12:35:44 AM com.hazelcast.partition.InternalPartitionService >>> INFO: [127.0.0.1]:5703 [dev] [3.2.4] All migration tasks has been >>> completed, queues are empty. >>> Aug 5, 2014 12:35:44 AM com.hazelcast.core.LifecycleService >>> INFO: [127.0.0.1]:5701 [dev] [3.2.4] Address[127.0.0.1]:5701 is STARTED >>> Starting instance h4 >>> members of h3 after h4 is up : 2 >>> members of h4 after h4 is up : 2 >>> >>> >>> On Sat, Aug 2, 2014 at 2:41 PM, Afkham Azeez <[email protected]> wrote: >>> >>>> Dynamic discovery happens after the static nodes are added, and the >>>> static nodes being available is crucial for the cluster to work. >>>> >>>> >>>> On Sat, Aug 2, 2014 at 11:04 AM, Nirmal Fernando <[email protected]> >>>> wrote: >>>> >>>>> Hi Azeez, >>>>> >>>>> Thanks for the replies. Sorry, if I misunderstood the Hazelcast >>>>> TcpIpJoiner, but I did following test on Hazelcast tcp/ip [1] and it seems >>>>> each node discovers every other dynamically [2]. My Hazelcast.xml file is >>>>> [3]. Does my test case incorrect? Appreciate your thoughts. >>>>> >>>>> [1] >>>>> >>>>> public static void main(String[] args) { >>>>> System.setProperty("hazelcast.config", >>>>> "src/main/resources/hazelcast.xml"); >>>>> // Build Hazelcast cluster >>>>> System.out.println("Starting instance 1"); >>>>> HazelcastInstance h1 = Hazelcast.newHazelcastInstance(); >>>>> System.out.println("Starting instance 2"); >>>>> HazelcastInstance h2 = Hazelcast.newHazelcastInstance(); >>>>> >>>>> IMap<String, String> map1 = h1.getMap("map"); >>>>> map1.put("nirmal", "fernando"); >>>>> >>>>> IMap<String, String> map2 = h2.getMap("map"); >>>>> System.out.println("from h2: " + map2.get("nirmal")); >>>>> map2.set("nirmal", "fdo"); >>>>> System.out.println("from h1: " + map1.get("nirm")); >>>>> >>>>> HazelcastInstance h3 = Hazelcast.newHazelcastInstance(); >>>>> System.out.println(h1.getCluster().getMembers().size()); >>>>> System.out.println(h2.getCluster().getMembers().size()); >>>>> System.out.println(h3.getCluster().getMembers().size()); >>>>> System.exit(0); >>>>> } >>>>> >>>>> [2] >>>>> >>>>> ..... >>>>> >>>>> Members [3] { >>>>> Member [127.0.0.1]:5701 this >>>>> Member [127.0.0.1]:5702 >>>>> Member [127.0.0.1]:5703 >>>>> } >>>>> >>>>> Aug 2, 2014 10:59:17 AM com.hazelcast.cluster.ClusterService >>>>> INFO: [127.0.0.1]:5703 [dev] >>>>> >>>>> Members [3] { >>>>> Member [127.0.0.1]:5701 >>>>> Member [127.0.0.1]:5702 >>>>> Member [127.0.0.1]:5703 this >>>>> } >>>>> >>>>> Aug 2, 2014 10:59:17 AM com.hazelcast.cluster.ClusterService >>>>> INFO: [127.0.0.1]:5702 [dev] >>>>> >>>>> Members [3] { >>>>> Member [127.0.0.1]:5701 >>>>> Member [127.0.0.1]:5702 this >>>>> Member [127.0.0.1]:5703 >>>>> } >>>>> >>>>> Aug 2, 2014 10:59:17 AM com.hazelcast.partition.PartitionService >>>>> INFO: [127.0.0.1]:5701 [dev] Re-partitioning cluster data... Migration >>>>> queue size: 90 >>>>> Aug 2, 2014 10:59:19 AM com.hazelcast.core.LifecycleService >>>>> INFO: [127.0.0.1]:5703 [dev] Address[127.0.0.1]:5703 is STARTED >>>>> 3 >>>>> 3 >>>>> 3 >>>>> >>>>> [3] >>>>> >>>>> <hazelcast xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>> xsi:schemaLocation="http://www.hazelcast.com/schema/config >>>>> http://www.hazelcast.com/schema/config/hazelcast-config-3.2.xsd" >>>>> xmlns="http://www.hazelcast.com/schema/config"> >>>>> <network> >>>>> <join> >>>>> <tcp-ip enabled="true"> >>>>> <member>127.0.0.1</member> >>>>> </tcp-ip> >>>>> </join> >>>>> </network> >>>>> >>>>> </hazelcast> >>>>> >>>>> >>>>> >>>>> >>>>> On Sat, Aug 2, 2014 at 10:25 AM, Afkham Azeez <[email protected]> wrote: >>>>> >>>>>> Anyway, there is a catch here. The membership scheme uses TCP/IP >>>>>> underneath, and adds the members it sees as static members. But when all >>>>>> the members each node added fails, that node has to be restarted. So, >>>>>> when >>>>>> the cluster if formed, node 1 will not have any WK members; node 2 will >>>>>> have 1 WK member, node 3 will have 2 and so on. So if node 1 fails, node >>>>>> 2 >>>>>> also fails, if nodes 1 & 2 fail, node 3 also fails. >>>>>> >>>>>> >>>>>> On Sat, Aug 2, 2014 at 10:10 AM, Nirmal Fernando <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> In a Cloud environment, it's not ideal to mark one or more WKA >>>>>>> members since it brings lot of challenges such as; >>>>>>> >>>>>>> 1. Keeping WKA members up and running always >>>>>>> 2. If they got destroyed spin up replacement WKA members and respawn >>>>>>> the whole cluster. >>>>>>> etc. >>>>>>> >>>>>>> These could possibly lead to lot of instability to the cluster and >>>>>>> in turn affect the sole purpose of clustering. >>>>>>> >>>>>>> According to [1] and also to the Hazelcast book, Hazelcast has a >>>>>>> solution to this problem for AWS EC2. Here I quote [1]. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Hazelcast either uses Multicast or TCP/IP for discovery, but EC2 >>>>>>> does not support multicast. To configure discovery using TCP/IP, you >>>>>>> need >>>>>>> the IP addresses upfront and this is not always possible. To solve this >>>>>>> problem, Hazelcast supports EC2 auto discovery which is a layer on top >>>>>>> ofTCP/IP discovery. EC2 auto discovery uses AWS API to get the IP >>>>>>> addresses >>>>>>> of possible Hazelcast nodes and feeds those IP addresses to TCP/IP >>>>>>> discovery. This way the discovery process becomes dynamic and it >>>>>>> eliminates >>>>>>> a need for knowing the IP addresses upfront. To limit theIP addresses >>>>>>> only >>>>>>> to Hazelcast related nodes, EC2 discovery supports filtering based on >>>>>>> security group and/or tags.* >>>>>>> >>>>>>> Current idea is to use tags to specify the cluster domain and need >>>>>>> to research more and come up with a design. Further, we could leverage >>>>>>> Hazelcast's partition groups to support HA across Availability zones. >>>>>>> >>>>>>> Also, if this is only for EC2, that would not be much useful. But >>>>>>> Hazelcast seems to have an extension point to support other Clouds via >>>>>>> JClouds. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> *In case you are using a different cloud provider than Amazon EC2, >>>>>>> you can still make use of Hazelcast. What you can do it to use the >>>>>>> programmatic api toconfigure a tcp-ip cluster and the well known members >>>>>>> need to be retrieved fromyour cloud provider (e.g. using jclouds).* >>>>>>> >>>>>>> In addition to this, at [1] Hazelcast describes some best practices >>>>>>> to use in AWS EC2 Cloud. And I think we could leverage these in many of >>>>>>> the >>>>>>> real world deployments. >>>>>>> >>>>>>> I hope it's feasible to port this support to Carbon Clustering and >>>>>>> I'd like to work on it. Let me know your thoughts. >>>>>>> >>>>>>> [1] http://hazelcast.com/resources/amazon-ec2-deployment-guide/ >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Thanks & regards, >>>>>>> Nirmal >>>>>>> >>>>>>> Senior Software Engineer- Platform Technologies Team, WSO2 Inc. >>>>>>> Mobile: +94715779733 >>>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Afkham Azeez* >>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>>> * <http://www.apache.org/>* >>>>>> *email: **[email protected]* <[email protected]> >>>>>> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: * >>>>>> *http://blog.afkham.org* <http://blog.afkham.org> >>>>>> *twitter: **http://twitter.com/afkham_azeez* >>>>>> <http://twitter.com/afkham_azeez> >>>>>> * linked-in: **http://lk.linkedin.com/in/afkhamazeez >>>>>> <http://lk.linkedin.com/in/afkhamazeez>* >>>>>> >>>>>> *Lean . Enterprise . Middleware* >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Thanks & regards, >>>>> Nirmal >>>>> >>>>> Senior Software Engineer- Platform Technologies Team, WSO2 Inc. >>>>> Mobile: +94715779733 >>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Afkham Azeez* >>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>> Member; Apache Software Foundation; http://www.apache.org/ >>>> * <http://www.apache.org/>* >>>> *email: **[email protected]* <[email protected]> >>>> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: * >>>> *http://blog.afkham.org* <http://blog.afkham.org> >>>> *twitter: **http://twitter.com/afkham_azeez* >>>> <http://twitter.com/afkham_azeez> >>>> * linked-in: **http://lk.linkedin.com/in/afkhamazeez >>>> <http://lk.linkedin.com/in/afkhamazeez>* >>>> >>>> *Lean . Enterprise . Middleware* >>>> >>> >>> >>> >>> -- >>> >>> Thanks & regards, >>> Nirmal >>> >>> Senior Software Engineer- Platform Technologies Team, WSO2 Inc. >>> Mobile: +94715779733 >>> Blog: http://nirmalfdo.blogspot.com/ >>> >>> >>> >> >> >> -- >> *Afkham Azeez* >> Director of Architecture; WSO2, Inc.; http://wso2.com >> Member; Apache Software Foundation; http://www.apache.org/ >> * <http://www.apache.org/>* >> *email: **[email protected]* <[email protected]> >> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: * >> *http://blog.afkham.org* <http://blog.afkham.org> >> *twitter: **http://twitter.com/afkham_azeez* >> <http://twitter.com/afkham_azeez> >> * linked-in: **http://lk.linkedin.com/in/afkhamazeez >> <http://lk.linkedin.com/in/afkhamazeez>* >> >> *Lean . Enterprise . Middleware* >> > > > > -- > > Thanks & regards, > Nirmal > > Senior Software Engineer- Platform Technologies Team, WSO2 Inc. > Mobile: +94715779733 > Blog: http://nirmalfdo.blogspot.com/ > > > -- *Afkham Azeez* Director of Architecture; WSO2, Inc.; http://wso2.com Member; Apache Software Foundation; http://www.apache.org/ * <http://www.apache.org/>* *email: **[email protected]* <[email protected]> * cell: +94 77 3320919 blog: **http://blog.afkham.org* <http://blog.afkham.org> *twitter: **http://twitter.com/afkham_azeez* <http://twitter.com/afkham_azeez> * linked-in: **http://lk.linkedin.com/in/afkhamazeez <http://lk.linkedin.com/in/afkhamazeez>* *Lean . Enterprise . Middleware*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
