org.springframework.amqp.rabbit.connection
Class ConnectionFactoryUtils
java.lang.Object
org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils
public class ConnectionFactoryUtils
- extends Object
Helper class for managing a Spring based Rabbit 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
.
- Author:
- Mark Fisher, Dave Syer
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ConnectionFactoryUtils
public ConnectionFactoryUtils()
isChannelTransactional
public 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.
- Parameters:
channel
- the RabbitMQ Channel to checkconnectionFactory
- the RabbitMQ ConnectionFactory that the Channel originated from
- Returns:
- whether the Channel is transactional
getTransactionalResourceHolder
public static RabbitResourceHolder getTransactionalResourceHolder(ConnectionFactory connectionFactory,
boolean synchedLocalTransactionAllowed)
- Obtain a RabbitMQ Channel that is synchronized with the current transaction, if any.
- Parameters:
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.
- Returns:
- the transactional Channel, or
null
if none found
releaseResources
public static void releaseResources(RabbitResourceHolder resourceHolder)
bindResourceToTransaction
public static void bindResourceToTransaction(RabbitResourceHolder resourceHolder,
ConnectionFactory connectionFactory,
boolean synched)
registerDeliveryTag
public static void registerDeliveryTag(ConnectionFactory connectionFactory,
com.rabbitmq.client.Channel channel,
Long tag)
throws IOException
- Throws:
IOException
Copyright © 2011. All Rights Reserved.