Spring integration 在Spring集成中使用CacheConnectionFactory回复目标
我已经编写了一个jms出站网关来同步发送/接收消息,并且还使用了CachingConnectionFactory(sessionCacheSize=5)。现在,spring集成手册说它可能会导致OutOfMemory错误,因为它使用新的选择器创建了新的消费者。。。 手册建议改为使用,但这样会使消息接收变得异步 请大家提供更多信息,了解在什么情况下使用CacheConnectionFactory回复目标会导致OutOfMemory错误,如果不建议这样做,那么如何使消息接收同步 配置Spring integration 在Spring集成中使用CacheConnectionFactory回复目标,spring-integration,Spring Integration,我已经编写了一个jms出站网关来同步发送/接收消息,并且还使用了CachingConnectionFactory(sessionCacheSize=5)。现在,spring集成手册说它可能会导致OutOfMemory错误,因为它使用新的选择器创建了新的消费者。。。 手册建议改为使用,但这样会使消息接收变得异步 请大家提供更多信息,了解在什么情况下使用CacheConnectionFactory回复目标会导致OutOfMemory错误,如果不建议这样做,那么如何使消息接收同步 配置 <int
<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>
我认为
消费者被缓存,每个消费者都有一个不同的(唯一的)消息选择器,因此不能重复使用
正如警告所说的,关闭CCF中的缓存使用者,或者改用
。这是消费者的问题还是生产者的问题,因为我还看到每个发送都有不同的生产者对象?不,生产者只按目的地缓存,所以你不应该看到它们在增长(除非cacheProducers
为false-默认值为true);使用者按目标和选择器进行缓存。如果启用跟踪级别日志记录,您将获得缓存管理的完整详细信息。请记住,默认会话缓存大小为1,因此如果您有并发请求,您可能会看到创建新的生产者;请考虑增加缓存大小-有关详细信息,请参阅javadocs。