Class ProtonTransactionRefsOperation

java.lang.Object
org.apache.activemq.artemis.core.transaction.TransactionOperationAbstract
org.apache.activemq.artemis.core.server.impl.RefsOperation
org.apache.activemq.artemis.protocol.amqp.proton.transaction.ProtonTransactionRefsOperation
All Implemented Interfaces:
org.apache.activemq.artemis.core.transaction.TransactionOperation

public class ProtonTransactionRefsOperation extends org.apache.activemq.artemis.core.server.impl.RefsOperation
AMQP Protocol has different TX Rollback behaviour for Acks depending on whether an AMQP delivery has been settled or not. This class extends the Core RefsOperation used for normal acks. In the case where deliveries have been settled, normal Ack rollback is applied. For cases where deliveries are unsettled and rolled back, we increment the delivery count and return to the consumer.
  • Field Summary

    Fields inherited from class org.apache.activemq.artemis.core.server.impl.RefsOperation

    ignoreRedeliveryCheck
  • Constructor Summary

    Constructors
    Constructor
    Description
    ProtonTransactionRefsOperation(org.apache.activemq.artemis.core.server.Queue queue, org.apache.activemq.artemis.core.server.impl.AckReason reason, org.apache.activemq.artemis.core.persistence.StorageManager storageManager)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    rollbackRedelivery(org.apache.activemq.artemis.core.transaction.Transaction txn, org.apache.activemq.artemis.core.server.MessageReference ref, long timeBase, Map<org.apache.activemq.artemis.core.server.impl.QueueImpl, LinkedList<org.apache.activemq.artemis.core.server.MessageReference>> queueMap)
     

    Methods inherited from class org.apache.activemq.artemis.core.server.impl.RefsOperation

    afterCommit, afterRollback, getLingerMessages, getListOnConsumer, getReferencesToAcknowledge, getRelatedMessageReferences, isDelivering, setDelivering, setIgnoreRedeliveryCheck, setLingerSession

    Methods inherited from class org.apache.activemq.artemis.core.transaction.TransactionOperationAbstract

    afterCommit, afterPrepare, beforeCommit, beforePrepare, beforeRollback

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ProtonTransactionRefsOperation

      public ProtonTransactionRefsOperation(org.apache.activemq.artemis.core.server.Queue queue, org.apache.activemq.artemis.core.server.impl.AckReason reason, org.apache.activemq.artemis.core.persistence.StorageManager storageManager)
  • Method Details

    • rollbackRedelivery

      public void rollbackRedelivery(org.apache.activemq.artemis.core.transaction.Transaction txn, org.apache.activemq.artemis.core.server.MessageReference ref, long timeBase, Map<org.apache.activemq.artemis.core.server.impl.QueueImpl, LinkedList<org.apache.activemq.artemis.core.server.MessageReference>> queueMap) throws Exception
      Overrides:
      rollbackRedelivery in class org.apache.activemq.artemis.core.server.impl.RefsOperation
      Throws:
      Exception