@Override public boolean isSharedStore() { checkStarted(); clearIO(); try { return server.getHAPolicy().isSharedStore(); } finally { blockOnIO(); } }
/** * @throws ActiveMQException */ public void remoteFailOver(ReplicationLiveIsStoppingMessage.LiveStopping finalMessage) throws ActiveMQException { if (logger.isTraceEnabled()) { logger.trace("Remote fail-over, got message=" + finalMessage + ", backupUpToDate=" + backupUpToDate); } if (!activeMQServer.getHAPolicy().isBackup() || activeMQServer.getHAPolicy().isSharedStore()) { throw new ActiveMQInternalErrorException(); } if (!backupUpToDate) { failOver(null); } else { failOver(finalMessage); } }
@Override public synchronized void start() throws Exception { if (started) return; //deploy the backup connectors using the cluster configuration for (ClusterConnectionConfiguration config : configuration.getClusterConfigurations()) { deployBackupConnector(config); } //start each connector and if we are backup and shared store announce ourselves. NB with replication we don't do this //as we wait for replication to start and be notified by the replication manager. for (BackupConnector conn : backupConnectors) { conn.start(); if (server.getHAPolicy().isBackup() && server.getHAPolicy().isSharedStore()) { conn.informTopology(); conn.announceBackup(); } } started = true; }
/** * Waits for backup to be in the "started" state and to finish synchronization with its live. * * @param sessionFactory * @param seconds * @throws Exception */ protected void waitForBackup(ClientSessionFactoryInternal sessionFactory, int seconds) throws Exception { final ActiveMQServerImpl actualServer = (ActiveMQServerImpl) backupServer.getServer(); if (actualServer.getHAPolicy().isSharedStore()) { waitForServerToStart(actualServer); } else { waitForRemoteBackup(sessionFactory, seconds, true, actualServer); } }
if (haPolicy.isSharedStore()) { activation = haPolicy.createActivation(this, false, activationParams, shutdownOnCriticalIO); } else {
protected final void adaptLiveConfigForReplicatedFailBack(TestableServer server) { Configuration configuration = server.getServer().getConfiguration(); final TransportConfiguration backupConnector = getConnectorTransportConfiguration(false); if (server.getServer().getHAPolicy().isSharedStore()) { ClusterConnectionConfiguration cc = configuration.getClusterConfigurations().get(0); Assert.assertNotNull("cluster connection configuration", cc); Assert.assertNotNull("static connectors", cc.getStaticConnectors()); cc.getStaticConnectors().add(backupConnector.getName()); // backupConnector is only necessary for fail-back tests configuration.getConnectorConfigurations().put(backupConnector.getName(), backupConnector); return; } ReplicatedPolicy haPolicy = (ReplicatedPolicy) server.getServer().getHAPolicy(); haPolicy.setCheckForLiveServer(true); }
while (true) { Activation activation = actualServer.getActivation(); boolean isReplicated = !backup.getHAPolicy().isSharedStore(); boolean isRemoteUpToDate = true; if (isReplicated) {
if (!backupServer.getServer().getHAPolicy().isSharedStore()) {
assertFalse("no shared storage", servers[3].getHAPolicy().isSharedStore());
assertFalse("no shared storage", servers[3].getHAPolicy().isSharedStore());