【发布时间】:2018-03-28 19:17:19
【问题描述】:
我有一个 Spring 集成应用程序,需要 2 个 DefaultMessageListenerContainer(带有 transactionManager)和 2 个 jms:outbound-channel-adapter。
我已经用"property name="connectionFactory" ref="jmsConnectionFactory" 和"property name="transactionManager" ref="platformTransactionManager" 配置了每个监听器容器。
但对于事务管理器,我再次使用了不同的 jmsConnectionFactory 。我没有在侦听器容器中使用 CachingConnectionFactory ,而是在 platformTransactionManager 中使用它。对于jms:outbound-channel-adapter,我再次使用了在侦听器容器中使用过的jmsConnectionFactory。
我的问题是,使用这种配置,我遇到了问题。在高负载条件下超过限制 (150) 到 MQ 通道的连接数。
我尝试了许多不同的方法,但我没有看到没有。连接一旦启动就会断开,使用cachingFactory的以下配置
CachingConnectionFactory cachingConnectionFactory = new
CachingConnectionFactory(factory);
cachingConnectionFactory.setCacheConsumers(true);
cachingConnectionFactory.setCacheProducers(true);
cachingConnectionFactory.setSessionCacheSize(16);`
我试过了
1)在listenerContainer 和platformTransactionManager 之间共享jmsConnectionFactory,但由于我看到消息以错误的顺序发送,因此 txn 无法正常工作
2) 使用 cachingConenctionFactory in thelistenerContainer` ,但我仍然看到相同的号码。连接数
我应该为侦听器、txnmanager 和发送者使用 3 个不同的 jmsConnectionFactory 吗?
这里最好的配置,请建议,非常感谢!
【问题讨论】:
标签: spring-integration ibm-mq spring-jms