use of com.hazelcast.config.NetworkConfig in project hazelcast by hazelcast.
the class BadConfigurationMemberStartTest method testMulticastAndTcpEnabled.
@Test(expected = InvalidConfigurationException.class)
public void testMulticastAndTcpEnabled() throws Exception {
Config config = new Config();
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig joinConfig = networkConfig.getJoin();
joinConfig.getMulticastConfig().setEnabled(true);
joinConfig.getTcpIpConfig().setEnabled(true);
Hazelcast.newHazelcastInstance(config);
}
use of com.hazelcast.config.NetworkConfig in project hazelcast by hazelcast.
the class SplitBrainHandlerTest method testClusterMerge_when_split_not_detected_by_master.
private void testClusterMerge_when_split_not_detected_by_master(boolean multicastEnabled) throws InterruptedException {
Config config = new Config();
String groupName = generateRandomString(10);
config.getGroupConfig().setName(groupName);
config.setProperty(GroupProperty.MERGE_FIRST_RUN_DELAY_SECONDS.getName(), "10");
config.setProperty(GroupProperty.MERGE_NEXT_RUN_DELAY_SECONDS.getName(), "10");
config.setProperty(GroupProperty.MAX_NO_HEARTBEAT_SECONDS.getName(), "15");
config.setProperty(GroupProperty.MAX_JOIN_SECONDS.getName(), "10");
config.setProperty(GroupProperty.MAX_JOIN_MERGE_TARGET_SECONDS.getName(), "10");
NetworkConfig networkConfig = config.getNetworkConfig();
networkConfig.getJoin().getMulticastConfig().setEnabled(multicastEnabled);
networkConfig.getJoin().getTcpIpConfig().setEnabled(!multicastEnabled).addMember("127.0.0.1");
HazelcastInstance hz1 = newHazelcastInstance(config, "test-node1", new FirewallingNodeContext());
HazelcastInstance hz2 = newHazelcastInstance(config, "test-node2", new FirewallingNodeContext());
HazelcastInstance hz3 = newHazelcastInstance(config, "test-node3", new FirewallingNodeContext());
final Node n1 = TestUtil.getNode(hz1);
Node n2 = TestUtil.getNode(hz2);
Node n3 = TestUtil.getNode(hz3);
final CountDownLatch splitLatch = new CountDownLatch(2);
MembershipAdapter membershipAdapter = new MembershipAdapter() {
@Override
public void memberRemoved(MembershipEvent event) {
if (n1.getLocalMember().equals(event.getMember())) {
splitLatch.countDown();
}
}
};
hz2.getCluster().addMembershipListener(membershipAdapter);
hz3.getCluster().addMembershipListener(membershipAdapter);
final CountDownLatch mergeLatch = new CountDownLatch(1);
hz1.getLifecycleService().addLifecycleListener(new MergedEventLifeCycleListener(mergeLatch));
FirewallingTcpIpConnectionManager cm1 = getFireWalledConnectionManager(hz1);
FirewallingTcpIpConnectionManager cm2 = getFireWalledConnectionManager(hz2);
FirewallingTcpIpConnectionManager cm3 = getFireWalledConnectionManager(hz3);
// block n2 & n3 on n1
cm1.block(n2.address);
cm1.block(n3.address);
// remove and block n1 on n2 & n3
n2.clusterService.removeAddress(n1.address, null);
n3.clusterService.removeAddress(n1.address, null);
cm2.block(n1.address);
cm3.block(n1.address);
assertTrue(splitLatch.await(120, TimeUnit.SECONDS));
assertEquals(3, hz1.getCluster().getMembers().size());
assertEquals(2, hz2.getCluster().getMembers().size());
assertEquals(2, hz3.getCluster().getMembers().size());
// unblock n2 on n1 and n1 on n2 & n3
// n1 still blocks access to n3
cm1.unblock(n2.address);
cm2.unblock(n1.address);
cm3.unblock(n1.address);
assertTrue(mergeLatch.await(120, TimeUnit.SECONDS));
assertEquals(3, hz1.getCluster().getMembers().size());
assertEquals(3, hz2.getCluster().getMembers().size());
assertEquals(3, hz3.getCluster().getMembers().size());
assertEquals(n2.getThisAddress(), n1.getMasterAddress());
assertEquals(n2.getThisAddress(), n2.getMasterAddress());
assertEquals(n2.getThisAddress(), n3.getMasterAddress());
}
use of com.hazelcast.config.NetworkConfig in project hazelcast by hazelcast.
the class SplitBrainHandlerTest method testMergeAfterSplitBrain.
private void testMergeAfterSplitBrain(boolean multicast) throws InterruptedException {
String groupName = generateRandomString(10);
Config config = new Config();
config.setProperty(GroupProperty.MERGE_FIRST_RUN_DELAY_SECONDS.getName(), "5");
config.setProperty(GroupProperty.MERGE_NEXT_RUN_DELAY_SECONDS.getName(), "3");
config.getGroupConfig().setName(groupName);
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig join = networkConfig.getJoin();
join.getMulticastConfig().setEnabled(multicast);
join.getTcpIpConfig().setEnabled(!multicast);
join.getTcpIpConfig().addMember("127.0.0.1");
HazelcastInstance h1 = Hazelcast.newHazelcastInstance(config);
HazelcastInstance h2 = Hazelcast.newHazelcastInstance(config);
HazelcastInstance h3 = Hazelcast.newHazelcastInstance(config);
final CountDownLatch splitLatch = new CountDownLatch(2);
h3.getCluster().addMembershipListener(new MembershipListener() {
@Override
public void memberAdded(MembershipEvent membershipEvent) {
}
@Override
public void memberRemoved(MembershipEvent membershipEvent) {
splitLatch.countDown();
}
@Override
public void memberAttributeChanged(MemberAttributeEvent memberAttributeEvent) {
}
});
final CountDownLatch mergeLatch = new CountDownLatch(1);
h3.getLifecycleService().addLifecycleListener(new MergedEventLifeCycleListener(mergeLatch));
closeConnectionBetween(h1, h3);
closeConnectionBetween(h2, h3);
assertTrue(splitLatch.await(10, TimeUnit.SECONDS));
assertEquals(2, h1.getCluster().getMembers().size());
assertEquals(2, h2.getCluster().getMembers().size());
assertEquals(1, h3.getCluster().getMembers().size());
assertTrue(mergeLatch.await(30, TimeUnit.SECONDS));
assertEquals(3, h1.getCluster().getMembers().size());
assertEquals(3, h2.getCluster().getMembers().size());
assertEquals(3, h3.getCluster().getMembers().size());
assertEquals(ACTIVE, h1.getCluster().getClusterState());
assertEquals(ACTIVE, h2.getCluster().getClusterState());
assertEquals(ACTIVE, h3.getCluster().getClusterState());
}
use of com.hazelcast.config.NetworkConfig in project hazelcast by hazelcast.
the class MulticastJoinTest method test_whenInterfacesEnabled.
@Test
public void test_whenInterfacesEnabled() throws Exception {
Config config = new Config();
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig join = networkConfig.getJoin();
join.getTcpIpConfig().setEnabled(false);
MulticastConfig multicastConfig = join.getMulticastConfig();
multicastConfig.setEnabled(true);
InterfacesConfig interfaces = networkConfig.getInterfaces();
interfaces.setEnabled(true);
interfaces.addInterface("127.0.0.1");
testJoin(config);
}
use of com.hazelcast.config.NetworkConfig in project hazelcast by hazelcast.
the class ListSplitBrainTest method getConfig.
private Config getConfig(boolean multicast) {
Config config = new Config();
config.setProperty(GroupProperty.MERGE_FIRST_RUN_DELAY_SECONDS.getName(), "30");
config.setProperty(GroupProperty.MERGE_NEXT_RUN_DELAY_SECONDS.getName(), "3");
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig join = networkConfig.getJoin();
join.getMulticastConfig().setEnabled(multicast);
join.getTcpIpConfig().setEnabled(!multicast);
join.getTcpIpConfig().addMember("127.0.0.1");
return config;
}
Aggregations