@Override public long storePageCounterInc(long txID, long queueID, int add, long size) throws Exception { return manager.storePageCounterInc(txID, queueID, add, size); }
@Override public long storePageCounterInc(long queueID, int add, long size) throws Exception { return manager.storePageCounterInc(queueID, add, size); }
@Override public void increment(Transaction tx, int add, long size) throws Exception { if (tx == null) { if (persistent) { long id = storage.storePageCounterInc(this.subscriptionID, add, size); incrementProcessed(id, add, size); } else { incrementProcessed(-1, add, size); } } else { if (persistent) { tx.setContainsPersistent(); long id = storage.storePageCounterInc(tx.getID(), this.subscriptionID, add, size); applyIncrementOnTX(tx, id, add, size); } else { applyIncrementOnTX(tx, -1, add, size); } } }
@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 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(); } }