@Override public OperationContext newOperationContext() { return getStorageManager().newContext(getExecutorFactory().getExecutor()); }
@Override public synchronized void start() throws Exception { Configuration config = server.getConfiguration(); try { storageManager = server.getStorageManager(); storageManager.start(); server.getManagementService().setStorageManager(storageManager); journalsHolder.put(JournalContent.BINDINGS, storageManager.getBindingsJournal()); journalsHolder.put(JournalContent.MESSAGES, storageManager.getMessageJournal()); for (JournalContent jc : EnumSet.allOf(JournalContent.class)) { filesReservedForSync.put(jc, new HashMap<Long, JournalSyncFile>()); // We only need to load internal structures on the backup... journalLoadInformation[jc.typeByte] = journalsHolder.get(jc).loadSyncOnly(JournalState.SYNCING); } pageManager = server.createPagingManager(); pageManager.start(); started = true; } catch (Exception e) { if (server.isStarted()) throw e; } }
public long scaleDown() throws Exception { ScaleDownHandler scaleDownHandler = new ScaleDownHandler(activeMQServer.getPagingManager(), activeMQServer.getPostOffice(), activeMQServer.getNodeManager(), activeMQServer.getClusterManager().getClusterController(), activeMQServer.getStorageManager()); ConcurrentMap<SimpleString, DuplicateIDCache> duplicateIDCaches = ((PostOfficeImpl) activeMQServer.getPostOffice()).getDuplicateIDCaches(); Map<SimpleString, List<Pair<byte[], Long>>> duplicateIDMap = new HashMap<>(); for (SimpleString address : duplicateIDCaches.keySet()) { DuplicateIDCache duplicateIDCache = activeMQServer.getPostOffice().getDuplicateIDCache(address); duplicateIDMap.put(address, duplicateIDCache.getMap()); } return scaleDownHandler.scaleDown(scaleDownClientSessionFactory, activeMQServer.getResourceManager(), duplicateIDMap, activeMQServer.getManagementService().getManagementAddress(), null); } }
synchronized (replicationLock) { if (replicationManager != null) { activeMQServer.getStorageManager().stopReplication(); replicationManager = null;
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)); activeMQServer.getNodeManager().stopBackup(); logger.trace("start store manager"); activeMQServer.getStorageManager().start(); logger.trace("activated"); activeMQServer.getBackupManager().activated();
private void deployGroupingHandlerConfiguration(final GroupingHandlerConfiguration config) throws Exception { if (config != null) { GroupingHandler groupingHandler1; if (config.getType() == GroupingHandlerConfiguration.TYPE.LOCAL) { groupingHandler1 = new LocalGroupingHandler(executorFactory, scheduledPool, managementService, config.getName(), config.getAddress(), getStorageManager(), config.getTimeout(), config.getGroupTimeout(), config.getReaperPeriod()); } else { groupingHandler1 = new RemoteGroupingHandler(executorFactory, managementService, config.getName(), config.getAddress(), config.getTimeout(), config.getGroupTimeout()); } this.groupingHandler = groupingHandler1; managementService.addNotificationListener(groupingHandler1); } }
@Test public void testShutdownServer() throws Throwable { ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true, false); session.createQueue(QUEUE, QUEUE, null, true); ClientConsumer consumer = session.createConsumer(QUEUE); ClientProducer producer = session.createProducer(QUEUE); ClientMessage message = session.createMessage(Message.TEXT_TYPE, true, 0, System.currentTimeMillis(), (byte) 4); message.getBodyBuffer().writeString("hi"); message.putStringProperty("hello", "elo"); producer.send(message); ActiveMQServerImpl impl = (ActiveMQServerImpl) server; JournalStorageManager journal = (JournalStorageManager) impl.getStorageManager(); JDBCJournalImpl journalimpl = (JDBCJournalImpl) journal.getMessageJournal(); journalimpl.handleException(null, new Exception("failure")); Wait.waitFor(() -> !server.isStarted()); Assert.assertFalse(server.isStarted()); }
@Test public void testJournalFileOpenTimeoutDefaultValue() throws Exception { ActiveMQServerImpl server = new ActiveMQServerImpl(); try { server.start(); JournalImpl journal = (JournalImpl) server.getStorageManager().getBindingsJournal(); Assert.assertEquals(ActiveMQDefaultConfiguration.getDefaultJournalFileOpenTimeout(), journal.getFilesRepository().getJournalFileOpenTimeout()); Assert.assertEquals(ActiveMQDefaultConfiguration.getDefaultJournalFileOpenTimeout(), server.getConfiguration().getJournalFileOpenTimeout()); } finally { server.stop(); } }
@Override public void run() { try { activeMQServer.getStorageManager().startReplication(replicationManager, activeMQServer.getPagingManager(), activeMQServer.getNodeID().toString(), isFailBackRequest && replicatedPolicy.isAllowAutoFailBack(), replicatedPolicy.getInitialReplicationSyncTimeout());
@Test public void testJournalFileOpenTimeoutValue() throws Exception { int timeout = RandomUtil.randomPositiveInt(); Configuration configuration = createConfiguration("shared-store-master-hapolicy-config.xml"); configuration.setJournalFileOpenTimeout(timeout); ActiveMQServerImpl server = new ActiveMQServerImpl(configuration); try { server.start(); JournalImpl journal = (JournalImpl) server.getStorageManager().getBindingsJournal(); Assert.assertEquals(timeout, journal.getFilesRepository().getJournalFileOpenTimeout()); Assert.assertEquals(timeout, server.getConfiguration().getJournalFileOpenTimeout()); } finally { server.stop(); } }