Class RabbitResourceHolder

  • All Implemented Interfaces:
    ResourceHolder

    public class RabbitResourceHolder
    extends ResourceHolderSupport
    Rabbit resource holder, wrapping a RabbitMQ Connection and Channel. RabbitTransactionManager binds instances of this class to the thread, for a given Rabbit ConnectionFactory.

    Note: This is an SPI class, not intended to be used by applications.

    Author:
    Mark Fisher, Dave Syer, Gary Russell
    See Also:
    RabbitTransactionManager, RabbitTemplate
    • Constructor Detail

      • RabbitResourceHolder

        public RabbitResourceHolder()
        Create a new RabbitResourceHolder that is open for resources to be added.
      • RabbitResourceHolder

        public RabbitResourceHolder​(com.rabbitmq.client.Channel channel,
                                    boolean releaseAfterCompletion)
        Construct an instance for the channel.
        Parameters:
        channel - a channel to add
        releaseAfterCompletion - true if the channel should be released after completion.
    • Method Detail

      • isReleaseAfterCompletion

        public boolean isReleaseAfterCompletion()
        Whether the resources should be released after transaction completion. Default true. Listener containers set to false because the listener continues to use the channel.
        Returns:
        true if the resources should be released.
      • setRequeueOnRollback

        public void setRequeueOnRollback​(boolean requeueOnRollback)
        Set to true to requeue a message on rollback; default true.
        Parameters:
        requeueOnRollback - true to requeue
        Since:
        1.7.1
      • addConnection

        public final void addConnection​(Connection connection)
      • addChannel

        public final void addChannel​(com.rabbitmq.client.Channel channel)
      • addChannel

        public final void addChannel​(com.rabbitmq.client.Channel channel,
                                     @Nullable
                                     Connection connection)
      • containsChannel

        public boolean containsChannel​(com.rabbitmq.client.Channel channel)
      • getChannel

        @Nullable
        public com.rabbitmq.client.Channel getChannel()
      • closeAll

        public void closeAll()
      • addDeliveryTag

        public void addDeliveryTag​(com.rabbitmq.client.Channel channel,
                                   long deliveryTag)
      • rollbackAll

        public void rollbackAll()