Search in sources :

Example 6 with Xid

use of org.apache.qpid.server.txn.Xid in project qpid-broker-j by apache.

the class MemoryMessageStore method commitTransactionInternal.

private void commitTransactionInternal(MemoryMessageStoreTransaction transaction) {
    synchronized (_transactionLock) {
        for (Map.Entry<UUID, Set<Long>> localEnqueuedEntry : transaction._localEnqueueMap.entrySet()) {
            Set<Long> messageIds = _messageInstances.get(localEnqueuedEntry.getKey());
            if (messageIds == null) {
                messageIds = new HashSet<Long>();
                _messageInstances.put(localEnqueuedEntry.getKey(), messageIds);
            }
            messageIds.addAll(localEnqueuedEntry.getValue());
        }
        for (Map.Entry<UUID, Set<Long>> loacalDequeueEntry : transaction._localDequeueMap.entrySet()) {
            Set<Long> messageIds = _messageInstances.get(loacalDequeueEntry.getKey());
            if (messageIds != null) {
                messageIds.removeAll(loacalDequeueEntry.getValue());
                if (messageIds.isEmpty()) {
                    _messageInstances.remove(loacalDequeueEntry.getKey());
                }
            }
        }
        for (Map.Entry<Xid, DistributedTransactionRecords> entry : transaction._localDistributedTransactionsRecords.entrySet()) {
            _distributedTransactions.put(entry.getKey(), entry.getValue());
        }
        for (Xid removed : transaction._localDistributedTransactionsRemoves) {
            _distributedTransactions.remove(removed);
        }
    }
}
Also used : Xid(org.apache.qpid.server.txn.Xid) Set(java.util.Set) HashSet(java.util.HashSet) AtomicLong(java.util.concurrent.atomic.AtomicLong) UUID(java.util.UUID) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) ConcurrentMap(java.util.concurrent.ConcurrentMap) Map(java.util.Map)

Aggregations

Xid (org.apache.qpid.server.txn.Xid)6 DatabaseEntry (com.sleepycat.je.DatabaseEntry)3 XidBinding (org.apache.qpid.server.store.berkeleydb.tuple.XidBinding)3 UUID (java.util.UUID)2 MessageEnqueueRecord (org.apache.qpid.server.store.MessageEnqueueRecord)2 MessageStore (org.apache.qpid.server.store.MessageStore)2 NullMessageStore (org.apache.qpid.server.store.NullMessageStore)2 StorableMessageMetaData (org.apache.qpid.server.store.StorableMessageMetaData)2 Transaction (org.apache.qpid.server.store.Transaction)2 EnqueueRecord (org.apache.qpid.server.store.Transaction.EnqueueRecord)2 DistributedTransactionHandler (org.apache.qpid.server.store.handler.DistributedTransactionHandler)2 MessageHandler (org.apache.qpid.server.store.handler.MessageHandler)2 MessageInstanceHandler (org.apache.qpid.server.store.handler.MessageInstanceHandler)2 DtxBranch (org.apache.qpid.server.txn.DtxBranch)2 DtxRegistry (org.apache.qpid.server.txn.DtxRegistry)2 OperationStatus (com.sleepycat.je.OperationStatus)1 Transaction (com.sleepycat.je.Transaction)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1