Class RabbitResourceHolder
java.lang.Object
org.springframework.transaction.support.ResourceHolderSupport
org.springframework.amqp.rabbit.connection.RabbitResourceHolder
- All Implemented Interfaces:
ResourceHolder
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, Ngoc Nhan
- See Also:
-
Constructor Summary
ConstructorDescriptionCreate 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 TypeMethodDescriptionfinal void
addChannel
(com.rabbitmq.client.Channel channel) final void
addChannel
(com.rabbitmq.client.Channel channel, Connection connection) final void
addConnection
(Connection connection) void
addDeliveryTag
(com.rabbitmq.client.Channel channel, long deliveryTag) void
closeAll()
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
-
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 addreleaseAfterCompletion
- 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
-
addChannel
public final void addChannel(com.rabbitmq.client.Channel channel) -
addChannel
-
containsChannel
public boolean containsChannel(com.rabbitmq.client.Channel channel) -
getConnection
-
getChannel
-
commitAll
- Throws:
AmqpException
-
closeAll
public void closeAll() -
addDeliveryTag
public void addDeliveryTag(com.rabbitmq.client.Channel channel, long deliveryTag) -
rollbackAll
public void rollbackAll()
-