如何在使用来自上游消息驱动通道适配器的会话时在出站通道适配器中缓存生产者

时间:2014-10-09 11:21:06

标签: spring-integration spring-jms

我设计了以下消息流

            1) message-driven-channel-adapter -> 
                     1.1) service-activator -> outbound-channel-adapter (for sending response)
                     1.2) in a chain - transformer -> outbound-channel-adapter (for sending error)

消息驱动的通道适配器从websphere MQ中选择消息,并使用DefaultMessageListenercontainer进行配置。出站通道适配器将消息发送到websphere MQ,并为此配置了JMS模板。

问题是,性能看起来很低。我使用了cache_consumer并确认="在消息驱动通道适配器上进行了事务处理。我不觉得消息驱动通道适配器会是一个问题。我觉得性能问题是由于出站通道适配器中使用的jmstemplate,因为每次它从消息驱动通道适配器下游提供的会话中创建一个生产者。

有没有办法缓存jmstemplate使用的生产者。任何人都可以告诉我如何提高性能?

1 个答案:

答案 0 :(得分:0)

如果使用CachingConnectionFactory,生产者将默认在连接工厂中进行缓存。注意:如果在入站适配器中使用变量并发,请确保在连接工厂中将cacheConsumers设置为false;我们不希望消费者在那里缓存(在容器中没问题)。