@Override public long getMessagesAdded() { if (pageSubscription != null) { return messagesAdded.get() + pageSubscription.getCounter().getValueAdded(); } else { return messagesAdded.get(); } }
/** * This is done to prevent non tx to get out of sync in case of failures * * @param tx * @param page * @param ctx * @throws Exception */ private void applyPageCounters(Transaction tx, Page page, RouteContextList ctx, long size) throws Exception { List<org.apache.activemq.artemis.core.server.Queue> durableQueues = ctx.getDurableQueues(); List<org.apache.activemq.artemis.core.server.Queue> nonDurableQueues = ctx.getNonDurableQueues(); for (org.apache.activemq.artemis.core.server.Queue q : durableQueues) { if (tx == null) { // non transactional writes need an intermediate place // to avoid the counter getting out of sync q.getPageSubscription().getCounter().pendingCounter(page, 1, size); } else { // null tx is treated through pending counters q.getPageSubscription().getCounter().increment(tx, 1, size); } } for (org.apache.activemq.artemis.core.server.Queue q : nonDurableQueues) { q.getPageSubscription().getCounter().increment(tx, 1, size); } }
PageSubscriptionCounter counter = store.getCursorProvider().getSubscription(entry.getKey()).getCounter();
/** * @param queue * @return * @throws Exception */ private PageSubscriptionCounter locateCounter(Queue queue) throws Exception { PageSubscription subscription = server.getPagingManager().getPageStore(new SimpleString("A1")).getCursorProvider().getSubscription(queue.getID()); PageSubscriptionCounter counter = subscription.getCounter(); return counter; }
sub.getCounter().loadValue(record.id, encoding.getValue(), encoding.getPersistentSize()); } else { ActiveMQServerLogger.LOGGER.journalCannotFindQueueReloadingPage(encoding.getQueueID()); sub.getCounter().loadInc(record.id, encoding.getValue(), encoding.getPersistentSize()); } else { ActiveMQServerLogger.LOGGER.journalCannotFindQueueReloadingPageCursor(encoding.getQueueID()); sub.getCounter().processReload();
sub.getCounter().applyIncrementOnTX(tx, record.id, encoding.getValue(), encoding.getPersistentSize()); sub.notEmpty(); } else {