public class ConnectionFactoryUtils extends Object
ConnectionFactory
,
in particular for obtaining transactional Rabbit resources for a given ConnectionFactory.
Mainly for internal use within the framework. Used by RabbitTemplate
as
well as SimpleMessageListenerContainer
.
Modifier and Type | Class and Description |
---|---|
static interface |
ConnectionFactoryUtils.ResourceFactory
Callback interface for resource creation.
|
Constructor and Description |
---|
ConnectionFactoryUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
bindResourceToTransaction(RabbitResourceHolder resourceHolder,
ConnectionFactory connectionFactory,
boolean synched) |
static RabbitResourceHolder |
getTransactionalResourceHolder(ConnectionFactory connectionFactory,
boolean synchedLocalTransactionAllowed)
Obtain a RabbitMQ Channel that is synchronized with the current transaction, if any.
|
static boolean |
isChannelTransactional(com.rabbitmq.client.Channel channel,
ConnectionFactory connectionFactory)
Determine whether the given RabbitMQ Channel is transactional, that is, bound to the current thread by Spring's
transaction facilities.
|
static void |
registerDeliveryTag(ConnectionFactory connectionFactory,
com.rabbitmq.client.Channel channel,
Long tag) |
static void |
releaseResources(RabbitResourceHolder resourceHolder) |
public static boolean isChannelTransactional(com.rabbitmq.client.Channel channel, ConnectionFactory connectionFactory)
channel
- the RabbitMQ Channel to checkconnectionFactory
- the RabbitMQ ConnectionFactory that the Channel originated frompublic static RabbitResourceHolder getTransactionalResourceHolder(ConnectionFactory connectionFactory, boolean synchedLocalTransactionAllowed)
connectionFactory
- the ConnectionFactory to obtain a Channel forsynchedLocalTransactionAllowed
- whether to allow for a local RabbitMQ transaction that is synchronized with
a Spring-managed transaction (where the main transaction might be a JDBC-based one for a specific DataSource, for
example), with the RabbitMQ transaction committing right after the main transaction. If not allowed, the given
ConnectionFactory needs to handle transaction enlistment underneath the covers.null
if none foundpublic static void releaseResources(RabbitResourceHolder resourceHolder)
public static void bindResourceToTransaction(RabbitResourceHolder resourceHolder, ConnectionFactory connectionFactory, boolean synched)
public static void registerDeliveryTag(ConnectionFactory connectionFactory, com.rabbitmq.client.Channel channel, Long tag) throws IOException
IOException