public void createJournal() throws Exception { journal = new JournalImpl(fileSize, minFiles, poolSize, 0, 0, fileFactory, filePrefix, fileExtension, maxAIO) { @Override public void onCompactDone() { latchDone.countDown(); try { latchWait.await(); } catch (InterruptedException e) { e.printStackTrace(); } } }; journal.setAutoReclaim(false); addActiveMQComponent(journal); }
protected void checkAndReclaimFiles() throws Exception { journal.debugWait(); boolean originalAutoReclaim = journal.isAutoReclaim(); journal.setAutoReclaim(true); journal.checkReclaimStatus(); journal.setAutoReclaim(originalAutoReclaim); journal.debugWait(); }
journal.setAutoReclaim(false);
@Test public void testOrganicallyWithALimit() throws Exception { setup(2, 5, 10 * 1024, true, 50); createJournal(); journal.setAutoReclaim(true); startJournal(); load(); List<String> files1 = fileFactory.listFiles(fileExtension); Assert.assertEquals(2, files1.size()); Assert.assertEquals(0, journal.getDataFilesCount()); Assert.assertEquals(0, journal.getFreeFilesCount()); Assert.assertEquals(1, journal.getOpenedFilesCount()); Assert.assertEquals(0, journal.getIDMapSize()); // Fill all the files for (int i = 0; i < 200; i++) { add(i); journal.forceMoveNextFile(); } journal.checkReclaimStatus(); for (int i = 0; i < 200; i++) { delete(i); } journal.forceMoveNextFile(); journal.checkReclaimStatus(); files1 = fileFactory.listFiles(fileExtension); Assert.assertTrue("supposed to have less than 10 but it had " + files1.size() + " files created", files1.size() < 10); stopJournal(); }
setup(2, -1, 10 * 1024, true, 50); createJournal(); journal.setAutoReclaim(true); startJournal(); load();
@Test public void testOnRollback() throws Exception { setup(2, 60 * 1024, false); createJournal(); startJournal(); journal.setAutoReclaim(false); load(); add(1); updateTx(2, 1); rollback(2); journal.testCompact(); stopJournal(); startJournal(); loadAndCheck(); stopJournal(); }
@Test public void testSimpleCommitCompactInBetween() throws Exception { setup(2, 60 * 1024, false); final int NUMBER_OF_RECORDS = 1; SimpleIDGenerator idGen = new SimpleIDGenerator(1000); createJournal(); journal.setAutoReclaim(false); startJournal(); load(); for (int i = 0; i < NUMBER_OF_RECORDS; i++) { long tx = idGen.generateID(); addTx(tx, idGen.generateID()); journal.testCompact(); journal.testCompact(); journal.testCompact(); journal.testCompact(); logger.info("going to commit"); commit(tx); } stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
journal.setAutoReclaim(false);
journal.setAutoReclaim(false);
@Test public void testCompactAddAndUpdateFollowedByADelete3() throws Exception { setup(2, 60 * 1024, false); SimpleIDGenerator idGen = new SimpleIDGenerator(1000); createJournal(); journal.setAutoReclaim(false); startJournal(); load(); long firstID = idGen.generateID(); long consumerTX = idGen.generateID(); long addedRecord = idGen.generateID(); add(firstID); updateTx(consumerTX, firstID); startCompact(); addTx(consumerTX, addedRecord); commit(consumerTX); delete(addedRecord); finishCompact(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
@Test public void testCompactAddAndUpdateFollowedByADelete2() throws Exception { setup(2, 60 * 1024, false); SimpleIDGenerator idGen = new SimpleIDGenerator(1000); createJournal(); journal.setAutoReclaim(false); startJournal(); load(); long firstID = idGen.generateID(); long consumerTX = idGen.generateID(); long appendTX = idGen.generateID(); long addedRecord = idGen.generateID(); addTx(consumerTX, firstID); startCompact(); addTx(appendTX, addedRecord); commit(appendTX); updateTx(consumerTX, addedRecord); commit(consumerTX); long deleteTXID = idGen.generateID(); deleteTx(deleteTXID, addedRecord); commit(deleteTXID); finishCompact(); journal.forceMoveNextFile(); journal.testCompact(); stopJournal(); createJournal(); startJournal(); loadAndCheck(); }
journal.setAutoReclaim(false);