private void compactJournal(final File directory, final String journalPrefix, final String journalSuffix, final int minFiles, final int fileSize, final IOCriticalErrorListener listener) throws Exception { NIOSequentialFileFactory nio = new NIOSequentialFileFactory(directory, listener, 1); JournalImpl journal = new JournalImpl(fileSize, minFiles, minFiles, 0, 0, nio, journalPrefix, journalSuffix, 1); journal.start(); journal.loadInternalOnly(); journal.compact(); journal.stop(); } }
private void compactJournal(final File directory, final String journalPrefix, final String journalSuffix, final int minFiles, final int fileSize, final IOCriticalErrorListener listener) throws Exception { NIOSequentialFileFactory nio = new NIOSequentialFileFactory(directory, listener, 1); JournalImpl journal = new JournalImpl(fileSize, minFiles, minFiles, 0, 0, nio, journalPrefix, journalSuffix, 1); journal.start(); journal.loadInternalOnly(); journal.compact(); journal.stop(); } }
journal.start();
private void setupJournal(final int journalSize, final int alignment, final int numberOfMinimalFiles) throws Exception { if (factory == null) { factory = new FakeSequentialFileFactory(alignment, true); } if (journalImpl != null) { journalImpl.stop(); } journalImpl = new JournalImpl(journalSize, numberOfMinimalFiles, numberOfMinimalFiles, 0, 0, factory, "tt", "tt", 1000); journalImpl.start(); records.clear(); transactions.clear(); journalImpl.load(records, transactions, null); }
private static JournalImpl createJournal(File folder, boolean crash) throws Exception { NIOSequentialFileFactory factory = new NIOSequentialFileFactory(folder, 10); JournalImpl journal = new JournalImpl(100 * 1024, 2, 2, 0, 0, factory, "jrntest", "jrn", 512) { @Override protected SequentialFile writeControlFile(final SequentialFileFactory fileFactory, final List<JournalFile> files, final List<JournalFile> newFiles, final List<Pair<String, String>> renames) throws Exception { if (crash) { SequentialFile controlFile = fileFactory.createSequentialFile(AbstractJournalUpdateTask.FILE_COMPACT_CONTROL); controlFile.open(); controlFile.close(); System.err.println("crashing after creation of control file"); System.exit(OK); } return JournalCompactor.writeControlFile(fileFactory, files, newFiles, renames); } }; journal.setAutoReclaim(false); journal.start(); return journal; }
journal.start();
/** * @throws Exception */ private void printJournal() throws Exception { NIOSequentialFileFactory factory = new NIOSequentialFileFactory(new File(getJournalDir()), 100); JournalImpl journal = new JournalImpl(ActiveMQDefaultConfiguration.getDefaultJournalFileSize(), 2, 2, 0, 0, factory, "activemq-data", "amq", 100); ArrayList<RecordInfo> records = new ArrayList<>(); ArrayList<PreparedTransactionInfo> transactions = new ArrayList<>(); journal.start(); journal.load(records, transactions, null); // System.out.println("==============================================="); // System.out.println("Journal records at the end:"); // // for (RecordInfo record : records) // { // System.out.println(record.id + ", update = " + record.isUpdate); // } journal.stop(); } }
private void setupAndLoadJournal(final int journalSize, final int alignment, final int numberOfMinimalFiles) throws Exception { if (factory == null) { factory = new FakeSequentialFileFactory(alignment, true); } if (journalImpl != null) { journalImpl.stop(); } journalImpl = new JournalImpl(journalSize, numberOfMinimalFiles, numberOfMinimalFiles, 0, 0, factory, "tt", "tt", 1000); addActiveMQComponent(journalImpl); journalImpl.start(); records.clear(); transactions.clear(); incompleteTransactions.clear(); journalImpl.load(records, transactions, new TransactionFailureCallback() { @Override public void failedTransaction(final long transactionID, final List<RecordInfo> records, final List<RecordInfo> recordsToDelete) { System.out.println("records.length = " + records.size()); incompleteTransactions.add(transactionID); } }); }
/** * Reads a journal system and returns a Map<Integer,AtomicInteger> of recordTypes and the number of records per type, * independent of being deleted or not * * @param config * @return * @throws Exception */ protected Pair<List<RecordInfo>, List<PreparedTransactionInfo>> loadMessageJournal(Configuration config) throws Exception { JournalImpl messagesJournal = null; try { SequentialFileFactory messagesFF = new NIOSequentialFileFactory(new File(getJournalDir()), null, 1); messagesJournal = new JournalImpl(config.getJournalFileSize(), config.getJournalMinFiles(), config.getJournalPoolFiles(), 0, 0, messagesFF, "activemq-data", "amq", 1); final List<RecordInfo> committedRecords = new LinkedList<>(); final List<PreparedTransactionInfo> preparedTransactions = new LinkedList<>(); messagesJournal.start(); messagesJournal.load(committedRecords, preparedTransactions, null, false); return new Pair<>(committedRecords, preparedTransactions); } finally { try { if (messagesJournal != null) { messagesJournal.stop(); } } catch (Throwable ignored) { } } }
messagesJournal.start(); messagesJournal.load(records, preparedTransactions, null);
journal = new JournalImpl(1024 * 1024, 2, config.getJournalCompactMinFiles(), config.getJournalPoolFiles(), config.getJournalCompactPercentage(), ff, "activemq-bindings", "bindings", 1); journal.start();
final JournalImpl journal = ValidateTransactionHealthTest.createJournal(journalType, journalDir); journal.start(); journal.load(new LoaderCallback() {
private void reload(final String type, final String journalDir, final long numberOfRecords, final int numberOfThreads) throws Exception { JournalImpl journal = ValidateTransactionHealthTest.createJournal(type, journalDir); journal.start(); try { Loader loadTest = new Loader(numberOfRecords); journal.load(loadTest); Assert.assertEquals(numberOfRecords * numberOfThreads, loadTest.numberOfAdds); Assert.assertEquals(0, loadTest.numberOfPreparedTransactions); Assert.assertEquals(0, loadTest.numberOfUpdates); Assert.assertEquals(0, loadTest.numberOfDeletes); if (loadTest.ex != null) { throw loadTest.ex; } } finally { journal.stop(); } }
messagesJournal.start();
journal.start(); journal.load(new LoaderCallback() {