Spring Integration中使用CacheConnectionFactory的Reply-destination

时间:2014-07-14 19:41:04

标签: spring-integration

我已经编写了一个jms出站网关来同步发送/接收消息,我也在使用CachingConnectionFactory(sessionCacheSize = 5)。现在Spring集成手册说它可能导致OutOfMemory错误,因为它使用新的选择器创建新的消费者... 而手动建议使用,但这会使消息接收异步。

任何人都可以提供更多见解,在什么情况下,使用CacheConnectionFactory回复目的地会导致OutOfMemory错误,如果不建议这样做,那么如何使消息接收同步?

配置

<int-jms:outbound-gateway
            connection-factory="myCacheConnectionFactory"
            receive-timeout="5000"
            reply-channel="emailChannel" 
            reply-destination="responseQueue" 
            request-channel="requestMsgChannel" 
            request-destination="requestQueue">
</int-jms:outbound-gateway>

1 个答案:

答案 0 :(得分:1)

我认为caution in the documentation explains the problem quite clearly

消费者被缓存,每个人都有一个不同的(唯一的)消息选择器,因此无法重复使用。

正如警告所说,关闭CCF中的缓存消费者,或改为使用<reply-listener/>