Spring 具有PooledConnectionFactory的ActiveMQ持久订户

Spring 具有PooledConnectionFactory的ActiveMQ持久订户,spring,activemq,connection-pooling,spring-integration,Spring,Activemq,Connection Pooling,Spring Integration,我试图实现一个场景,在这个场景中,我必须在同一个应用程序中创建多个持久订户。我想将spring默认消息侦听器容器与ActiveMQ池连接工厂一起使用,其中“maxConnection”指定为所需的连接数 但我看到一些帖子说,不使用持久订户池: 我最近也看到了很多关于这个的帖子。所以我的问题是: 客户端是否应在应用程序中使用上述指定的配置(pooledConnectionFactory,其中为多个持久订户指定了maxConnection)。或者持久订户不应与池连接工厂一起使用 配置此类测试用例

我试图实现一个场景,在这个场景中,我必须在同一个应用程序中创建多个持久订户。我想将spring默认消息侦听器容器与ActiveMQ池连接工厂一起使用,其中“maxConnection”指定为所需的连接数

但我看到一些帖子说,使用持久订户池:

我最近也看到了很多关于这个的帖子。所以我的问题是: 客户端是否应在应用程序中使用上述指定的配置(pooledConnectionFactory,其中为多个持久订户指定了maxConnection)。或者持久订户不应与池连接工厂一起使用

配置此类测试用例的正确方法是什么

谢谢,
Steven

通常不需要对侦听器容器使用任何类型的池/缓存,因为连接/会话是长期存在的。当连接或会话短暂且重复创建/销毁(例如发送消息时)时,缓存/池提供了主要好处。侦听器容器将其会话保持长时间打开(取决于配置)。如果将容器配置为每个会话只处理有限数量的消息,则可以使用Spring的
SingleConnectionFactory
(每个容器单独一个),以避免为每个会话创建新连接的开销


此外,对于持久订阅,将在连接上设置
clientId
,因此您确实不希望其他使用者获取已将其
clientId
设置为其他值的池连接。

谢谢。我可以使用ActiveMQConnectionFactory(每个容器一个工厂)吗?另外,持久订阅者在使用pooledConenctionFactory和maxConnection时可能出现哪些情况?是的。我不明白你的第二个问题。我在回答中解释了池的问题。“侦听器容器将其会话保持长时间打开(取决于配置)。”这些配置是什么,您能给我指一下这些配置吗?请参阅。