Class PooledChannelConnectionFactory
- java.lang.Object
-
- org.springframework.amqp.rabbit.connection.AbstractConnectionFactory
-
- org.springframework.amqp.rabbit.connection.PooledChannelConnectionFactory
-
- All Implemented Interfaces:
com.rabbitmq.client.ShutdownListener,EventListener,ConnectionFactory,Aware,BeanNameAware,DisposableBean,ApplicationContextAware,ApplicationEventPublisherAware,ApplicationListener<ContextClosedEvent>
public class PooledChannelConnectionFactory extends AbstractConnectionFactory implements com.rabbitmq.client.ShutdownListener
A very simple connection factory that caches channels using Apache Pool2GenericObjectPools (one for transactional and one for non-transactional channels). The pools have default configuration but they can be configured using a callback.- Since:
- 2.3
- Author:
- Gary Russell
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.springframework.amqp.rabbit.connection.AbstractConnectionFactory
AbstractConnectionFactory.AddressShuffleMode
-
-
Field Summary
-
Fields inherited from class org.springframework.amqp.rabbit.connection.AbstractConnectionFactory
DEFAULT_CLOSE_TIMEOUT, logger
-
-
Constructor Summary
Constructors Constructor Description PooledChannelConnectionFactory(com.rabbitmq.client.ConnectionFactory rabbitConnectionFactory)Construct an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddConnectionListener(ConnectionListener listener)ConnectioncreateConnection()voiddestroy()booleanisSimplePublisherConfirms()Return true if simple publisher confirms are enabled.voidresetConnection()Close the connection(s).voidsetPoolConfigurer(BiConsumer<org.apache.commons.pool2.impl.GenericObjectPool<com.rabbitmq.client.Channel>,Boolean> poolConfigurer)Add a consumer to configure the object pool.voidsetPublisherConnectionFactory(AbstractConnectionFactory publisherConnectionFactory)Set a custom publisher connection factory; the type does not need to be the same as this factory.voidsetSimplePublisherConfirms(boolean simplePublisherConfirms)Enable simple publisher confirms.-
Methods inherited from class org.springframework.amqp.rabbit.connection.AbstractConnectionFactory
addChannelListener, clearConnectionListeners, createBareConnection, doSetPublisherConnectionFactory, getApplicationContext, getApplicationEventPublisher, getBeanName, getChannelListener, getCloseTimeout, getConnectionListener, getConnectionNameStrategy, getContextStopped, getDefaultHostName, getExecutorService, getHost, getPort, getPublisherConnectionFactory, getRabbitConnectionFactory, getUsername, getVirtualHost, hasPublisherConnectionFactory, onApplicationEvent, removeConnectionListener, setAddresses, setAddressResolver, setAddressShuffleMode, setApplicationContext, setApplicationEventPublisher, setBeanName, setChannelListeners, setCloseExceptionLogger, setCloseTimeout, setConnectionListeners, setConnectionNameStrategy, setConnectionThreadFactory, setConnectionTimeout, setExecutor, setHost, setPassword, setPort, setRecoveryListener, setRequestedHeartBeat, setShuffleAddresses, setUri, setUri, setUsername, setVirtualHost, shutdownCompleted, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.springframework.amqp.rabbit.connection.ConnectionFactory
isPublisherConfirms, isPublisherReturns
-
-
-
-
Method Detail
-
setPublisherConnectionFactory
public void setPublisherConnectionFactory(@Nullable AbstractConnectionFactory publisherConnectionFactory)
Description copied from class:AbstractConnectionFactorySet a custom publisher connection factory; the type does not need to be the same as this factory.- Overrides:
setPublisherConnectionFactoryin classAbstractConnectionFactory- Parameters:
publisherConnectionFactory- the factory.
-
setPoolConfigurer
public void setPoolConfigurer(BiConsumer<org.apache.commons.pool2.impl.GenericObjectPool<com.rabbitmq.client.Channel>,Boolean> poolConfigurer)
Add a consumer to configure the object pool. The second argument is true when called with the transactional pool.- Parameters:
poolConfigurer- the configurer.
-
isSimplePublisherConfirms
public boolean isSimplePublisherConfirms()
Description copied from interface:ConnectionFactoryReturn true if simple publisher confirms are enabled.- Specified by:
isSimplePublisherConfirmsin interfaceConnectionFactory- Returns:
- simplePublisherConfirms
-
setSimplePublisherConfirms
public void setSimplePublisherConfirms(boolean simplePublisherConfirms)
Enable simple publisher confirms.- Parameters:
simplePublisherConfirms- true to enable.
-
addConnectionListener
public void addConnectionListener(ConnectionListener listener)
- Specified by:
addConnectionListenerin interfaceConnectionFactory- Overrides:
addConnectionListenerin classAbstractConnectionFactory
-
createConnection
public Connection createConnection() throws AmqpException
- Specified by:
createConnectionin interfaceConnectionFactory- Throws:
AmqpException
-
resetConnection
public void resetConnection()
Close the connection(s). This will impact any in-process operations. New connection(s) will be created on demand after this method returns. This might be used to force a reconnect to the primary broker after failing over to a secondary broker.
-
destroy
public void destroy()
- Specified by:
destroyin interfaceDisposableBean- Overrides:
destroyin classAbstractConnectionFactory
-
-