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
ConstructorsConstructorDescriptionCreate 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, @Nullable 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) @Nullable com.rabbitmq.client.Channel
@Nullable Connection
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
public @Nullable com.rabbitmq.client.Channel getChannel() -
commitAll
- Throws:
AmqpException
-
closeAll
public void closeAll() -
addDeliveryTag
public void addDeliveryTag(com.rabbitmq.client.Channel channel, long deliveryTag) -
rollbackAll
public void rollbackAll()
-