I don't understand how that config will work when you have your instances
running on multiple JVMs on multiple machines since the port is not
provided.


On Tue, Aug 5, 2014 at 7:28 PM, Nirmal Fernando <[email protected]> wrote:

> Here it is;
>
>
> [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 Tue, Aug 5, 2014 at 7:26 PM, Afkham Azeez <[email protected]> wrote:
>
>> 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 <%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

Reply via email to