/** * To be called by backup trying to fail back the server */ private void startFailbackChecker() { activeMQServer.getScheduledPool().scheduleAtFixedRate(new FailbackChecker(), 1000L, 1000L, TimeUnit.MILLISECONDS); }
@Override public void sendLiveIsStopping() { final ReplicationManager localReplicationManager = replicationManager; if (localReplicationManager != null) { localReplicationManager.sendLiveIsStopping(ReplicationLiveIsStoppingMessage.LiveStopping.STOP_CALLED); // Schedule for 10 seconds // this pool gets a 'hard' shutdown, no need to manage the Future of this Runnable. activeMQServer.getScheduledPool().schedule(new Runnable() { @Override public void run() { localReplicationManager.clearReplicationTokens(); } }, 30, TimeUnit.SECONDS); } }
@Override public void allVotesCast(Topology voteTopology) { //if we have any nodes that we can request then send a request if (nodes.size() > 0) { Pair<String, Integer> decision = getDecision(); TopologyMemberImpl member = voteTopology.getMember(decision.getA()); try { boolean backupStarted = colocatedHAManager.requestBackup(member.getConnector(), decision.getB().intValue(), !colocatedPolicy.isSharedStore()); if (!backupStarted) { nodes.clear(); server.getScheduledPool().schedule(new Runnable() { @Override public void run() { server.getClusterManager().getQuorumManager().vote(new RequestBackupQuorumVote()); } }, colocatedPolicy.getBackupRequestRetryInterval(), TimeUnit.MILLISECONDS); } } catch (Exception e) { ActiveMQServerLogger.LOGGER.failedToSendRequestToNode(e); } } else { nodes.clear(); server.getScheduledPool().schedule(new Runnable() { @Override public void run() { server.getClusterManager().getQuorumManager().vote(RequestBackupQuorumVote.this); } }, colocatedPolicy.getBackupRequestRetryInterval(), TimeUnit.MILLISECONDS); } }
if (closed) return; backupQuorum = new SharedNothingBackupQuorum(activeMQServer.getStorageManager(), activeMQServer.getNodeManager(), activeMQServer.getScheduledPool(), networkHealthCheck, replicaPolicy.getQuorumSize(), replicaPolicy.getVoteRetries(), replicaPolicy.getVoteRetryWait(), replicaPolicy.getQuorumVoteWait()); activeMQServer.getClusterManager().getQuorumManager().registerQuorum(backupQuorum); activeMQServer.getClusterManager().getQuorumManager().registerQuorumHandler(new ServerConnectVoteHandler(activeMQServer));
/** * This method is protected as it may be used as a hook for creating a custom storage manager (on tests for instance) */ protected StorageManager createStorageManager() { if (configuration.isPersistenceEnabled()) { if (configuration.getStoreConfiguration() != null && configuration.getStoreConfiguration().getStoreType() == StoreConfiguration.StoreType.DATABASE) { JDBCJournalStorageManager journal = new JDBCJournalStorageManager(configuration, getCriticalAnalyzer(), getScheduledPool(), executorFactory, ioExecutorFactory, shutdownOnCriticalIO); this.getCriticalAnalyzer().add(journal); return journal; } else { // Default to File Based Storage Manager, (Legacy default configuration). JournalStorageManager journal = new JournalStorageManager(configuration, getCriticalAnalyzer(), executorFactory, scheduledPool, ioExecutorFactory, shutdownOnCriticalIO); this.getCriticalAnalyzer().add(journal); return journal; } } return new NullStorageManager(); }
this.reloadManager = new ReloadManagerImpl(getScheduledPool(), executorFactory.getExecutor(), configuration.getConfigurationFileRefreshPeriod()); if (configuration.getConfigurationUrl() != null && getScheduledPool() != null) { reloadManager.addCallback(configuration.getConfigurationUrl(), new ConfigurationFileReloader());
injectMonitor(new FileStoreMonitor(getScheduledPool(), executorFactory.getExecutor(), configuration.getDiskScanPeriod(), TimeUnit.MILLISECONDS, configuration.getMaxDiskUsage() / 100f, shutdownOnCriticalIO)); } catch (Exception e) { ActiveMQServerLogger.LOGGER.unableToInjectMonitor(e);