/** * @throws Exception * @see org.apache.activemq.artemis.core.server.ActiveMQComponent#start() */ @Override public void start() throws Exception { localJournal.start(); }
@Override public void start() throws Exception { checkAndCreateDir(config.getBindingsLocation(), createDir); jmsJournal.start(); started = true; }
logger.trace("starting journal for " + jc); journal.start(); if (logger.isTraceEnabled()) { logger.trace("loadAndSync " + jc);
public void start() throws Exception { journal.start(); List<RecordInfo> committedRecords = new LinkedList<RecordInfo>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<PreparedTransactionInfo>(); TransactionFailureCallback failureCallback = new TransactionFailureCallback() { public void failedTransaction(long l, List<RecordInfo> recordInfos, List<RecordInfo> recordInfos1) { tsLogger.i18NLogger.warn_journal_load_error(); } }; JournalLoadInformation journalLoadInformation = journal.load(committedRecords, preparedTransactions, failureCallback); maxID.set(journalLoadInformation.getMaxID()); if(!preparedTransactions.isEmpty()) { tsLogger.i18NLogger.warn_journal_load_error(); } for(RecordInfo record : committedRecords) { InputBuffer inputBuffer = new InputBuffer(record.data); Uid uid = UidHelper.unpackFrom(inputBuffer); String typeName = inputBuffer.unpackString(); getContentForType(typeName).put(uid, record); // don't unpack the rest yet, we may never need it. read_committed does it on demand. } }
public void start() throws Exception { journal.start(); List<RecordInfo> committedRecords = new LinkedList<RecordInfo>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<PreparedTransactionInfo>(); TransactionFailureCallback failureCallback = new TransactionFailureCallback() { public void failedTransaction(long l, List<RecordInfo> recordInfos, List<RecordInfo> recordInfos1) { tsLogger.i18NLogger.warn_journal_load_error(); } }; JournalLoadInformation journalLoadInformation = journal.load(committedRecords, preparedTransactions, failureCallback); maxID.set(journalLoadInformation.getMaxID()); if(!preparedTransactions.isEmpty()) { tsLogger.i18NLogger.warn_journal_load_error(); } for(RecordInfo record : committedRecords) { InputBuffer inputBuffer = new InputBuffer(record.data); Uid uid = UidHelper.unpackFrom(inputBuffer); String typeName = inputBuffer.unpackString(); getContentForType(typeName).put(uid, record); // don't unpack the rest yet, we may never need it. read_committed does it on demand. } }
public void start() throws Exception { journal.start(); List<RecordInfo> committedRecords = new LinkedList<RecordInfo>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<PreparedTransactionInfo>(); TransactionFailureCallback failureCallback = new TransactionFailureCallback() { public void failedTransaction(long l, List<RecordInfo> recordInfos, List<RecordInfo> recordInfos1) { tsLogger.i18NLogger.warn_journal_load_error(); } }; JournalLoadInformation journalLoadInformation = journal.load(committedRecords, preparedTransactions, failureCallback); maxID.set(journalLoadInformation.getMaxID()); if(!preparedTransactions.isEmpty()) { tsLogger.i18NLogger.warn_journal_load_error(); } for(RecordInfo record : committedRecords) { InputBuffer inputBuffer = new InputBuffer(record.data); Uid uid = UidHelper.unpackFrom(inputBuffer); String typeName = inputBuffer.unpackString(); getContentForType(typeName).put(uid, record); // don't unpack the rest yet, we may never need it. read_committed does it on demand. } }
public void start() throws Exception { journal.start(); List<RecordInfo> committedRecords = new LinkedList<RecordInfo>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<PreparedTransactionInfo>(); TransactionFailureCallback failureCallback = new TransactionFailureCallback() { public void failedTransaction(long l, List<RecordInfo> recordInfos, List<RecordInfo> recordInfos1) { tsLogger.i18NLogger.warn_journal_load_error(); } }; JournalLoadInformation journalLoadInformation = journal.load(committedRecords, preparedTransactions, failureCallback); maxID.set(journalLoadInformation.getMaxID()); if(!preparedTransactions.isEmpty()) { tsLogger.i18NLogger.warn_journal_load_error(); } for(RecordInfo record : committedRecords) { InputBuffer inputBuffer = new InputBuffer(record.data); Uid uid = UidHelper.unpackFrom(inputBuffer); String typeName = inputBuffer.unpackString(); getContentForType(typeName).put(uid, record); // don't unpack the rest yet, we may never need it. read_committed does it on demand. } }
public void start() throws Exception { journal.start(); List<RecordInfo> committedRecords = new LinkedList<RecordInfo>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<PreparedTransactionInfo>(); TransactionFailureCallback failureCallback = new TransactionFailureCallback() { public void failedTransaction(long l, List<RecordInfo> recordInfos, List<RecordInfo> recordInfos1) { tsLogger.i18NLogger.warn_journal_load_error(); } }; JournalLoadInformation journalLoadInformation = journal.load(committedRecords, preparedTransactions, failureCallback); maxID.set(journalLoadInformation.getMaxID()); if(!preparedTransactions.isEmpty()) { tsLogger.i18NLogger.warn_journal_load_error(); } for(RecordInfo record : committedRecords) { InputBuffer inputBuffer = new InputBuffer(record.data); Uid uid = UidHelper.unpackFrom(inputBuffer); String typeName = inputBuffer.unpackString(); getContentForType(typeName).put(uid, record); // don't unpack the rest yet, we may never need it. read_committed does it on demand. } }
public void start() throws Exception { journal.start(); List<RecordInfo> committedRecords = new LinkedList<RecordInfo>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<PreparedTransactionInfo>(); TransactionFailureCallback failureCallback = new TransactionFailureCallback() { public void failedTransaction(long l, List<RecordInfo> recordInfos, List<RecordInfo> recordInfos1) { tsLogger.i18NLogger.warn_journal_load_error(); } }; JournalLoadInformation journalLoadInformation = journal.load(committedRecords, preparedTransactions, failureCallback); maxID.set(journalLoadInformation.getMaxID()); if(!preparedTransactions.isEmpty()) { tsLogger.i18NLogger.warn_journal_load_error(); } for(RecordInfo record : committedRecords) { InputBuffer inputBuffer = new InputBuffer(record.data); Uid uid = UidHelper.unpackFrom(inputBuffer); String typeName = inputBuffer.unpackString(); getContentForType(typeName).put(uid, record); // don't unpack the rest yet, we may never need it. read_committed does it on demand. } }
protected void loadIDs(final Journal journal, final BatchingIDGenerator batch) throws Exception { ArrayList<RecordInfo> records = new ArrayList<>(); ArrayList<PreparedTransactionInfo> tx = new ArrayList<>(); journal.start(); journal.load(records, tx, null); Assert.assertEquals(0, tx.size()); Assert.assertTrue("Contains " + records.size(), records.size() > 0); for (RecordInfo record : records) { if (record.userRecordType == JournalRecordIds.ID_COUNTER_RECORD) { ActiveMQBuffer buffer = ActiveMQBuffers.wrappedBuffer(record.data); batch.loadState(record.id, buffer); } } }
/** * Open the bindings journal and extract all bindings data. * * @throws Exception will be thrown if anything goes wrong reading the bindings journal */ private void getBindings() throws Exception { List<RecordInfo> records = new LinkedList<>(); Journal bindingsJournal = storageManager.getBindingsJournal(); bindingsJournal.start(); ActiveMQServerLogger.LOGGER.debug("Reading bindings journal from " + config.getBindingsDirectory()); bindingsJournal.load(records, null, null); for (RecordInfo info : records) { if (info.getUserRecordType() == JournalRecordIds.QUEUE_BINDING_RECORD) { PersistentQueueBindingEncoding bindingEncoding = (PersistentQueueBindingEncoding) DescribeJournal.newObjectEncoding(info, null); queueBindings.put(bindingEncoding.getId(), bindingEncoding); } else if (info.getUserRecordType() == JournalRecordIds.ADDRESS_BINDING_RECORD) { PersistentAddressBindingEncoding bindingEncoding = (PersistentAddressBindingEncoding) DescribeJournal.newObjectEncoding(info, null); addressBindings.put(bindingEncoding.getId(), bindingEncoding); } } bindingsJournal.stop(); }
/** * Open the bindings journal and extract all bindings data. * * @throws Exception will be thrown if anything goes wrong reading the bindings journal */ private void getBindings() throws Exception { List<RecordInfo> records = new LinkedList<>(); Journal bindingsJournal = storageManager.getBindingsJournal(); bindingsJournal.start(); ActiveMQServerLogger.LOGGER.debug("Reading bindings journal from " + config.getBindingsDirectory()); bindingsJournal.load(records, null, null); for (RecordInfo info : records) { if (info.getUserRecordType() == JournalRecordIds.QUEUE_BINDING_RECORD) { PersistentQueueBindingEncoding bindingEncoding = (PersistentQueueBindingEncoding) DescribeJournal.newObjectEncoding(info, null); queueBindings.put(bindingEncoding.getId(), bindingEncoding); } else if (info.getUserRecordType() == JournalRecordIds.ADDRESS_BINDING_RECORD) { PersistentAddressBindingEncoding bindingEncoding = (PersistentAddressBindingEncoding) DescribeJournal.newObjectEncoding(info, null); addressBindings.put(bindingEncoding.getId(), bindingEncoding); } } bindingsJournal.stop(); }
@Test public void testPageCursorCounterRecordSize() throws Exception { server.getStorageManager().storePageCounterInc(1, 1, 1000); server.getStorageManager().stop(); JournalStorageManager journalStorageManager = (JournalStorageManager) server.getStorageManager(); List<RecordInfo> committedRecords = new LinkedList<>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<>(); try { journalStorageManager.getMessageJournal().start(); journalStorageManager.getMessageJournal().load(committedRecords, preparedTransactions, transactionFailure); ActiveMQBuffer buff = ActiveMQBuffers.wrappedBuffer(committedRecords.get(0).data); PageCountRecordInc encoding = new PageCountRecordInc(); encoding.decode(buff); Assert.assertEquals(1000, encoding.getPersistentSize()); } finally { journalStorageManager.getMessageJournal().stop(); } }
@Test public void testStoreAMQP() throws Throwable { ActiveMQServer server = createServer(true); server.start(); ProtonProtocolManagerFactory factory = (ProtonProtocolManagerFactory) server.getRemotingService().getProtocolFactoryMap().get("AMQP"); MessageImpl protonJMessage = (MessageImpl) Message.Factory.create(); AMQPMessage message = encodeAndCreateAMQPMessage(protonJMessage); message.setMessageID(333); Assert.assertNotNull(factory); server.getStorageManager().storeMessage(message); server.getStorageManager().stop(); JournalStorageManager journalStorageManager = (JournalStorageManager) server.getStorageManager(); List<RecordInfo> committedRecords = new LinkedList<>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<>(); TransactionFailureCallback transactionFailure = new TransactionFailureCallback() { @Override public void failedTransaction(long transactionID, List<RecordInfo> records, List<RecordInfo> recordsToDelete) { } }; try { journalStorageManager.getMessageJournal().start(); journalStorageManager.getMessageJournal().load(committedRecords, preparedTransactions, transactionFailure); Assert.assertEquals(1, committedRecords.size()); } finally { journalStorageManager.getMessageJournal().stop(); } }
@Test public void testPageCountRecordSize() throws Exception { long tx = server.getStorageManager().generateID(); server.getStorageManager().storePageCounter(tx, 1, 1, 100); server.getStorageManager().commit(tx); server.getStorageManager().stop(); JournalStorageManager journalStorageManager = (JournalStorageManager) server.getStorageManager(); List<RecordInfo> committedRecords = new LinkedList<>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<>(); try { journalStorageManager.getMessageJournal().start(); journalStorageManager.getMessageJournal().load(committedRecords, preparedTransactions, transactionFailure); ActiveMQBuffer buff = ActiveMQBuffers.wrappedBuffer(committedRecords.get(0).data); PageCountRecord encoding = new PageCountRecord(); encoding.decode(buff); Assert.assertEquals(100, encoding.getPersistentSize()); } finally { journalStorageManager.getMessageJournal().stop(); } }
@Test public void testPageCursorCounterRecordSizeTX() throws Exception { long tx = server.getStorageManager().generateID(); server.getStorageManager().storePageCounterInc(tx, 1, 1, 1000); server.getStorageManager().commit(tx); server.getStorageManager().stop(); JournalStorageManager journalStorageManager = (JournalStorageManager) server.getStorageManager(); List<RecordInfo> committedRecords = new LinkedList<>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<>(); try { journalStorageManager.getMessageJournal().start(); journalStorageManager.getMessageJournal().load(committedRecords, preparedTransactions, transactionFailure); ActiveMQBuffer buff = ActiveMQBuffers.wrappedBuffer(committedRecords.get(0).data); PageCountRecordInc encoding = new PageCountRecordInc(); encoding.decode(buff); Assert.assertEquals(1000, encoding.getPersistentSize()); } finally { journalStorageManager.getMessageJournal().stop(); } }
@Test public void testStoreCore() throws Throwable { ActiveMQServer server = createServer(true); server.start(); CoreMessage message = new CoreMessage().initBuffer(10 * 1024).setDurable(true); message.setMessageID(333); CoreProtocolManagerFactory factory = (CoreProtocolManagerFactory) server.getRemotingService().getProtocolFactoryMap().get("CORE"); Assert.assertNotNull(factory); message.getBodyBuffer().writeByte((byte)'Z'); server.getStorageManager().storeMessage(message); server.getStorageManager().stop(); JournalStorageManager journalStorageManager = (JournalStorageManager) server.getStorageManager(); List<RecordInfo> committedRecords = new LinkedList<>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<>(); TransactionFailureCallback transactionFailure = new TransactionFailureCallback() { @Override public void failedTransaction(long transactionID, List<RecordInfo> records, List<RecordInfo> recordsToDelete) { } }; try { journalStorageManager.getMessageJournal().start(); journalStorageManager.getMessageJournal().load(committedRecords, preparedTransactions, transactionFailure); Assert.assertEquals(1, committedRecords.size()); } finally { journalStorageManager.getMessageJournal().stop(); } }
Journal journal = new JournalImpl(10 * 1024, 2, 2, 0, 0, factory, "activemq-bindings", "bindings", 1); journal.start();
jrn.start(); jrn.load(records, list, null);