@Override public void dequeue(MessageEnqueueRecord record, Action postTransactionAction) { if(_branch != null) { _branch.dequeue(record); _branch.addPostTransactionAction(postTransactionAction); } else { _autoCommitTransaction.dequeue(record, postTransactionAction); } }
if(!branch.hasAssociatedActiveSessions()) branch.clearAssociations(); if(branch.expired() || branch.getState() == DtxBranch.State.TIMEDOUT) else if(branch.getState() != DtxBranch.State.ACTIVE && branch.getState() != DtxBranch.State.ROLLBACK_ONLY) + branch.getState(), id); branch.prepare(); branch.setState(DtxBranch.State.PREPARED);
public synchronized void close() { for(DtxBranch branch : _branches.values()) { branch.close(); } _branches.clear(); }
public synchronized void endAssociations(AMQPSession<?,?> session) { for(DtxBranch branch : _branches.values()) { if(branch.isAssociated(session)) { branch.setState(DtxBranch.State.ROLLBACK_ONLY); branch.disassociateSession(session); } } }
if(branch == null) branch = new DtxBranch(storedXid, dtxRegistry); dtxRegistry.registerBranch(branch); final MessageEnqueueRecord[] records = new MessageEnqueueRecord[1]; branch.enqueue(queue, message, new Action<MessageEnqueueRecord>() branch.addPostTransactionAction(new ServerTransaction.Action() branch.dequeue(entry.getEnqueueRecord()); branch.addPostTransactionAction(new ServerTransaction.Action() branch.setState(DtxBranch.State.PREPARED); branch.prePrepareTransaction(); return true;
branch.disassociateSession(_session); _branch = null; throw new SuspendAndFailDtxException(id); if(!branch.isAssociated(_session)) if(branch.expired() || branch.getState() == DtxBranch.State.TIMEDOUT) branch.disassociateSession(_session); throw new TimeoutDtxException(id); branch.suspendSession(_session); branch.setState(DtxBranch.State.ROLLBACK_ONLY); branch.disassociateSession(_session);
if(branch.expired() || branch.getState() == DtxBranch.State.TIMEDOUT) if(!branch.hasAssociatedActiveSessions()) branch.clearAssociations(); branch.rollback(); branch.setState(DtxBranch.State.FORGOTTEN); unregisterBranch(branch);
if(!branch.hasAssociatedActiveSessions()) branch.clearAssociations(); if(branch.expired() || branch.getState() == DtxBranch.State.TIMEDOUT) else if(branch.getState() == DtxBranch.State.ROLLBACK_ONLY) else if(onePhase && branch.getState() == DtxBranch.State.PREPARED) else if(!onePhase && branch.getState() != DtxBranch.State.PREPARED) branch.commit(); branch.setState(DtxBranch.State.FORGOTTEN); unregisterBranch(branch);
branch = new DtxBranch(id, _dtxRegistry); if(_dtxRegistry.registerBranch(branch)) branch.associateSession(_session); branch.associateSession(_session); branch.resumeSession(_session);
_branch.enqueue(queue, message, new org.apache.qpid.server.util.Action<MessageEnqueueRecord>()
@Override public void addPostTransactionAction(Action postTransactionAction) { if(_branch != null) { _branch.addPostTransactionAction(postTransactionAction); } else { _autoCommitTransaction.addPostTransactionAction(postTransactionAction); } }
if (branch == null) branch = new DtxBranch(storedXid, dtxRegistry); dtxRegistry.registerBranch(branch); branch.enqueue(queue, message, new Action<MessageEnqueueRecord>() branch.addPostTransactionAction(new ServerTransaction.Action() branch.dequeue(entry.getEnqueueRecord()); branch.addPostTransactionAction(new ServerTransaction.Action() branch.setState(DtxBranch.State.PREPARED); branch.prePrepareTransaction();
_branch.enqueue(queue, message, new org.apache.qpid.server.util.Action<MessageEnqueueRecord>()
@Override public void dequeue(Collection<MessageInstance> messages, Action postTransactionAction) { if(_branch != null) { for(MessageInstance entry : messages) { _branch.dequeue(entry.getEnqueueRecord()); } _branch.addPostTransactionAction(postTransactionAction); } else { _autoCommitTransaction.dequeue(messages, postTransactionAction); } }