@Override public String getScaleDownGroupName() { return getScaleDownPolicy() != null ? getScaleDownPolicy().getGroupName() : null; }
public ColocatedActivation(ActiveMQServerImpl activeMQServer, ColocatedPolicy colocatedPolicy, LiveActivation liveActivation) { server = activeMQServer; this.colocatedPolicy = colocatedPolicy; this.liveActivation = liveActivation; colocatedHAManager = new ColocatedHAManager(colocatedPolicy, server); }
@Override public String getScaleDownGroupName() { return scaleDownPolicy == null ? null : scaleDownPolicy.getGroupName(); }
@Test public void colocatedTest2() throws Exception { Configuration configuration = createConfiguration("colocated-hapolicy-config2.xml"); ActiveMQServerImpl server = new ActiveMQServerImpl(configuration); try { server.start(); Activation activation = server.getActivation(); assertTrue(activation instanceof ColocatedActivation); HAPolicy haPolicy = server.getHAPolicy(); assertTrue(haPolicy instanceof ColocatedPolicy); ColocatedPolicy colocatedPolicy = (ColocatedPolicy) haPolicy; SharedStoreMasterPolicy livePolicy = (SharedStoreMasterPolicy) colocatedPolicy.getLivePolicy(); assertNotNull(livePolicy); assertFalse(livePolicy.isFailoverOnServerShutdown()); SharedStoreSlavePolicy backupPolicy = (SharedStoreSlavePolicy) colocatedPolicy.getBackupPolicy(); assertNotNull(backupPolicy); assertFalse(backupPolicy.isFailoverOnServerShutdown()); assertFalse(backupPolicy.isRestartBackup()); } finally { server.stop(); } }
public synchronized boolean activateBackup(int backupSize, String journalDirectory, String bindingsDirectory, String largeMessagesDirectory, String pagingDirectory, SimpleString nodeID) throws Exception { if (backupServers.size() >= haPolicy.getMaxBackups() || backupSize != backupServers.size()) { return false; } if (haPolicy.getBackupPolicy().isSharedStore()) { return activateSharedStoreBackup(journalDirectory, bindingsDirectory, largeMessagesDirectory, pagingDirectory); } else { return activateReplicatedBackup(nodeID); } }
@Override public void postConnectionFreeze() { if (liveOnlyPolicy.getScaleDownPolicy() != null && liveOnlyPolicy.getScaleDownPolicy().isEnabled() && scaleDownClientSessionFactory != null) { try { scaleDown(); } catch (Exception e) { ActiveMQServerLogger.LOGGER.failedToScaleDown(e); } finally { scaleDownClientSessionFactory.close(); scaleDownServerLocator.close(); } } }
@Override public void setHAPolicy(HAPolicy haPolicy) { if (logger.isTraceEnabled()) { logger.tracef("XXX @@@ Setting %s, isBackup=%s at %s", haPolicy, haPolicy.isBackup(), this); } this.haPolicy = haPolicy; }
@Override public boolean isSharedStore() { checkStarted(); clearIO(); try { return server.getHAPolicy().isSharedStore(); } finally { blockOnIO(); } }
public SharedStoreMasterPolicy getSharedStoreMasterPolicy() { if (sharedStoreMasterPolicy == null) { sharedStoreMasterPolicy = new SharedStoreMasterPolicy(failoverOnServerShutdown, isWaitForActivation); } return sharedStoreMasterPolicy; }
@Override public Vote vote(Vote vote) { int size = colocatedHAManager.getBackupServers().size(); return new RequestBackupVote(size, server.getNodeID().toString(), size < colocatedPolicy.getMaxBackups()); }
@Override public void run() { try { activeMQServer.stop(); //we are shared store but if we were started by a parent server then we shouldn't restart if (sharedStoreSlavePolicy.isRestartBackup()) { activeMQServer.start(); } } catch (Exception e) { ActiveMQServerLogger.LOGGER.serverRestartWarning(e); } } });
@Override public boolean isSharedStore() { return backupPolicy.isSharedStore(); }
public ReplicatedPolicy getReplicatedPolicy() { if (replicatedPolicy == null) { replicatedPolicy = new ReplicatedPolicy(false, allowFailback, initialReplicationSyncTimeout, groupName, clusterName, this, networkHealthCheck, voteOnReplicationFailure, quorumSize, voteRetries, voteRetryWait, quorumVoteWait); } return replicatedPolicy; }
public HAManager getHAManager() { return new StandaloneHAManager(); }
public ReplicatedPolicy(boolean checkForLiveServer, String groupName, String clusterName, long initialReplicationSyncTimeout, NetworkHealthCheck networkHealthCheck, boolean voteOnReplicationFailure, int quorumSize, int voteRetries, long voteRetryWait, int quorumVoteWait, long retryReplicationWait) { this.checkForLiveServer = checkForLiveServer; this.groupName = groupName; this.clusterName = clusterName; this.initialReplicationSyncTimeout = initialReplicationSyncTimeout; this.networkHealthCheck = networkHealthCheck; this.voteOnReplicationFailure = voteOnReplicationFailure; this.quorumSize = quorumSize; this.voteRetries = voteRetries; this.voteRetryWait = voteRetryWait; this.quorumVoteWait = quorumVoteWait; this.retryReplicationWait = retryReplicationWait; }
@Override public LiveActivation createActivation(ActiveMQServerImpl server, boolean wasLive, Map<String, Object> activationParams, ActiveMQServerImpl.ShutdownOnCriticalErrorListener shutdownOnCriticalIO) throws Exception { return new ColocatedActivation(server, this, livePolicy.createActivation(server, wasLive, activationParams, shutdownOnCriticalIO)); }
public String getBackupGroupName() { return server.getHAPolicy().getBackupGroupName(); }
public String getScaleDownGroupName() { return server.getHAPolicy().getScaleDownGroupName(); }
public static ScaleDownPolicy getScaleDownPolicy(ScaleDownConfiguration scaleDownConfiguration) { if (scaleDownConfiguration != null) { if (scaleDownConfiguration.getDiscoveryGroup() != null) { return new ScaleDownPolicy(scaleDownConfiguration.getDiscoveryGroup(), scaleDownConfiguration.getGroupName(), scaleDownConfiguration.getClusterName(), scaleDownConfiguration.isEnabled()); } else { return new ScaleDownPolicy(scaleDownConfiguration.getConnectors(), scaleDownConfiguration.getGroupName(), scaleDownConfiguration.getClusterName(), scaleDownConfiguration.isEnabled()); } } return null; }
@Override public void setFailoverOnServerShutdown(boolean failoverOnServerShutdown) { checkStarted(); clearIO(); try { HAPolicy haPolicy = server.getHAPolicy(); if (haPolicy instanceof SharedStoreSlavePolicy) { ((SharedStoreSlavePolicy) haPolicy).setFailoverOnServerShutdown(failoverOnServerShutdown); } } finally { blockOnIO(); } }