Class ConsumerChannelRegistry


  • public final class ConsumerChannelRegistry
    extends java.lang.Object
    Consumers register their primary channels with this class. This is used to ensure that, when using transactions, the resource holder doesn't close the primary channel being used by the Consumer. This was previously in ConnectionFactoryUtils, but it caused a class tangle with RabbitResourceHolder.
    Since:
    1.2
    Author:
    Gary Russell
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static com.rabbitmq.client.Channel getConsumerChannel()
      See registerConsumerChannel.
      static com.rabbitmq.client.Channel getConsumerChannel​(ConnectionFactory connectionFactory)
      See registerConsumerChannel.
      static void registerConsumerChannel​(com.rabbitmq.client.Channel channel, ConnectionFactory connectionFactory)
      If a listener container is configured to use a RabbitTransactionManager, the consumer's channel is registered here so that it is used as the bound resource when the transaction actually starts.
      static void unRegisterConsumerChannel()
      See registerConsumerChannel.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • registerConsumerChannel

        public static void registerConsumerChannel​(com.rabbitmq.client.Channel channel,
                                                   ConnectionFactory connectionFactory)
        If a listener container is configured to use a RabbitTransactionManager, the consumer's channel is registered here so that it is used as the bound resource when the transaction actually starts. It is normally not necessary to use an external transaction manager because local transactions work the same in that the channel is bound to the thread. This is for the case when a user happens to wire in a RabbitTransactionManager.
        Parameters:
        channel - The channel to register.
        connectionFactory - The connection factory.
      • unRegisterConsumerChannel

        public static void unRegisterConsumerChannel()
        See registerConsumerChannel. This method is called to unregister the channel when the consumer exits.
      • getConsumerChannel

        @Nullable
        public static com.rabbitmq.client.Channel getConsumerChannel()
        See registerConsumerChannel. This method is called to retrieve the channel for this consumer.
        Returns:
        The channel.
      • getConsumerChannel

        @Nullable
        public static com.rabbitmq.client.Channel getConsumerChannel​(ConnectionFactory connectionFactory)
        See registerConsumerChannel. This method is called to retrieve the channel for this consumer if the connection factory matches.
        Parameters:
        connectionFactory - The connection factory.
        Returns:
        The channel.