Jms 适用于春季&x27;s DefaultMessageListenerContainer建议使用ActiveMQConnectionFactory还是ActiveMQ PooledConnectionFactory?

Jms 适用于春季&x27;s DefaultMessageListenerContainer建议使用ActiveMQConnectionFactory还是ActiveMQ PooledConnectionFactory?,jms,activemq,spring-integration,Jms,Activemq,Spring Integration,根据 注意:不要将Spring的CachingConnectionFactory与动态缩放结合使用。理想情况下,不要将它与消息侦听器容器一起使用,因为通常最好让侦听器容器本身在其生命周期内处理适当的缓存。此外,停止和重新启动侦听器容器将仅适用于独立的本地缓存连接,而不适用于外部缓存的连接 我从本说明中了解到,我应该直接从供应商处使用ConnectionFactory 因此,我的问题如下: ActiveMQ中的哪个ConnetionFactory最适合与Spring的DefaultMessageL

根据

注意:不要将Spring的CachingConnectionFactory与动态缩放结合使用。理想情况下,不要将它与消息侦听器容器一起使用,因为通常最好让侦听器容器本身在其生命周期内处理适当的缓存。此外,停止和重新启动侦听器容器将仅适用于独立的本地缓存连接,而不适用于外部缓存的连接

我从本说明中了解到,我应该直接从供应商处使用ConnectionFactory

因此,我的问题如下:

ActiveMQ中的哪个ConnetionFactory最适合与Spring的DefaultMessageListenerContainer一起使用:

org.apache.activemq.ActiveMQConnectionFactory

org.apache.activemq.pool.PooledConnectionFactory

池连接工厂可以,但通常不需要,因为DMLC连接是长期存在的

Spring
SingleConnectionFactory
可能更好,因为所有使用者将共享一个连接(它是
CachingConnectionFactory
的父级)

javadocs中的注释源于缓存使用者的问题,而不是单一连接的使用

当会话/连接寿命较短时(例如,在执行
JmsTemplate
操作时),通常需要缓存/池

如果您正在使用事务,并且希望在侦听器会话上执行
JmsTemplate
操作,则必须将
JmsTemplate
配置为使用与DMLC相同的连接工厂