@Test public void testDefaultJoinGroupHelper() throws UnknownMasterException, DatabaseException { for (int i = 0; i < repEnvInfo.length; i++) { RepEnvInfo ri = repEnvInfo[i]; if ((i + 1) == repEnvInfo.length) { /* Use a non-master helper for the last replicator. */ ReplicationConfig config = RepTestUtils.createRepConfig((short) (i + 1)); String hpPairs = ""; // Skip the master, use all the other nodes for (int j = 1; j < i; j++) { hpPairs += "," + repEnvInfo[j].getRepConfig().getNodeHostPort(); } hpPairs = hpPairs.substring(1); config.setHelperHosts(hpPairs); File envHome = ri.getEnvHome(); ri = repEnvInfo[i] = new RepEnvInfo( envHome, config, RepTestUtils.createEnvConfig(Durability.COMMIT_SYNC)); } ri.openEnv(); State state = ri.getEnv().getState(); assertEquals((i == 0) ? State.MASTER : State.REPLICA, state); } }
public void openEnv() { try { Durability durability = new Durability( Durability.SyncPolicy.WRITE_NO_SYNC, Durability.SyncPolicy.WRITE_NO_SYNC, Durability.ReplicaAckPolicy.ALL); EnvironmentConfig envConfig = RepTestUtils.createEnvConfig(durability); ReplicationConfig repConfig = RepTestUtils.createRepConfig(1); repEnvInfo = RepTestUtils.setupEnvInfo(envHome, envConfig, repConfig, null); repEnvInfo.openEnv(); Thread.sleep(sleepTime); } catch (EnvironmentLockedException e) { /* * Exit the process with value 1, don't print out the exception * since it's expected. */ System.exit(1); } catch (UnsupportedOperationException e) { /* * Exit the process with value 2, don't print out the exception * since it's expected. * * Note: this exception thrown because we can't start a * replicated Environment on an existed standalone Environment. */ System.exit(2); } catch (Exception e) { /* Dump unexpected exceptions, exit processs with value 3. */ e.printStackTrace(); System.exit(3); } finally { if (repEnvInfo.getEnv() != null) { repEnvInfo.closeEnv(); } } }