public void commit() { _transaction.commit(); getAMQPConnection().incrementTransactionBeginCounter(); }
private void commit(final Runnable immediateAction, boolean async) { if(async && _transaction instanceof LocalTransaction) { ((LocalTransaction)_transaction).commitAsync(new Runnable() { @Override public void run() { try { immediateAction.run(); } finally { _connection.incrementTransactionBeginCounter(); } } }); } else { _transaction.commit(immediateAction); _connection.incrementTransactionBeginCounter(); } }
private void routeToAlternate(List<QueueEntry> entries) { ServerTransaction txn = new LocalTransaction(getVirtualHost().getMessageStore()); for(final QueueEntry entry : entries) { // TODO log requeues with a post enqueue action int requeues = entry.routeToAlternate(null, txn, null); if(requeues == 0) { // TODO log discard } } txn.commit(); }
@Override public long clearQueue() { QueueEntryIterator queueListIterator = getEntries().iterator(); long count = 0; ServerTransaction txn = new LocalTransaction(getVirtualHost().getMessageStore()); while (queueListIterator.advance()) { final QueueEntry node = queueListIterator.getNode(); boolean acquired = node.acquireOrSteal(new Runnable() { @Override public void run() { dequeueEntry(node); } }); if (acquired) { dequeueEntry(node, txn); } } txn.commit(); return count; }