Class RabbitResourceHolder

java.lang.Object
org.springframework.transaction.support.ResourceHolderSupport
org.springframework.amqp.rabbit.connection.RabbitResourceHolder
All Implemented Interfaces:
org.springframework.transaction.support.ResourceHolder

public class RabbitResourceHolder extends org.springframework.transaction.support.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.

See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a new RabbitResourceHolder that is open for resources to be added.
    RabbitResourceHolder(com.rabbitmq.client.Channel channel, boolean releaseAfterCompletion)
    Construct an instance for the channel.
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
    addChannel(com.rabbitmq.client.Channel channel)
     
    final void
    addChannel(com.rabbitmq.client.Channel channel, Connection connection)
     
    final void
     
    void
    addDeliveryTag(com.rabbitmq.client.Channel channel, long deliveryTag)
     
    void
     
    void
     
    boolean
    containsChannel(com.rabbitmq.client.Channel channel)
     
    com.rabbitmq.client.Channel
     
     
    boolean
    Whether the resources should be released after transaction completion.
    void
     
    void
    setRequeueOnRollback(boolean requeueOnRollback)
    Set to true to requeue a message on rollback; default true.

    Methods inherited from class org.springframework.transaction.support.ResourceHolderSupport

    clear, getDeadline, getTimeToLiveInMillis, getTimeToLiveInSeconds, hasTimeout, isOpen, isRollbackOnly, isSynchronizedWithTransaction, isVoid, released, requested, reset, resetRollbackOnly, setRollbackOnly, setSynchronizedWithTransaction, setTimeoutInMillis, setTimeoutInSeconds, unbound

    Methods inherited from class java.lang.Object

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

    • 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 Details

    • 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)
    • getConnection

      @Nullable public Connection getConnection()
    • getChannel

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

      public void commitAll() throws org.springframework.amqp.AmqpException
      Throws:
      org.springframework.amqp.AmqpException
    • closeAll

      public void closeAll()
    • addDeliveryTag

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

      public void rollbackAll()