Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel 骆驼JMS组件缓存级别和Spring';s卡钦连接厂_Apache Camel_Spring Jms_Apache Camel 3 - Fatal编程技术网

Apache camel 骆驼JMS组件缓存级别和Spring';s卡钦连接厂

Apache camel 骆驼JMS组件缓存级别和Spring';s卡钦连接厂,apache-camel,spring-jms,apache-camel-3,Apache Camel,Spring Jms,Apache Camel 3,根据apachecamel的文档,我们应该将Cache level设置为Cache_CONSUMER,以便在处理非XA事务时获得更好的性能。 可能是这样,因为PooledConnectionFactory不缓存使用者 代替PooledConnectionFactory,我使用Spring的CachingConnectionFactory,因为PooledConnectionFactory与ActiveMQ结合在一起,我处理的是IBMMQ 另一方面,CachingConnectionFactory

根据apachecamel的文档,我们应该将Cache level设置为Cache_CONSUMER,以便在处理非XA事务时获得更好的性能。 可能是这样,因为PooledConnectionFactory不缓存使用者

代替PooledConnectionFactory,我使用Spring的CachingConnectionFactory,因为PooledConnectionFactory与ActiveMQ结合在一起,我处理的是IBMMQ

另一方面,CachingConnectionFactory也缓存了生产者和消费者。 因此,我希望在这种情况下,将JmsComponent的缓存级别设置为cache_CONSUMER没有意义

如果我错了,请纠正我。
任何建议都会大有裨益

是的,我觉得你的理解就在这里

如本报告的一条评论所述

尽管
池连接工厂和
CachingConnectionFactory
声明它们每个池连接, 会话和生产者,
PooledConnectionFactory
没有 实际创建多个生产者的缓存。它只是使用了一个 singleton模式,当一个缓存生产者 请求。而
CachingConnectionFactory
实际上创建了 包含多个生产者的缓存,并从 当请求缓存时,缓存将被删除

通过在使用者级别进行缓存,即设置
CACHE\u consumer
,这意味着连接、会话和使用者已被缓存

但是,通过使用
CachingConnectionFactory
,您可以将使用者和生产者缓存默认设置为
true
,并在需要时获得对它们的控制权。因此,不需要更多的缓存级别

其他帮助:
是的,我觉得你的理解就在这里

如本报告的一条评论所述

尽管
池连接工厂和
CachingConnectionFactory
声明它们每个池连接, 会话和生产者,
PooledConnectionFactory
没有 实际创建多个生产者的缓存。它只是使用了一个 singleton模式,当一个缓存生产者 请求。而
CachingConnectionFactory
实际上创建了 包含多个生产者的缓存,并从 当请求缓存时,缓存将被删除

通过在使用者级别进行缓存,即设置
CACHE\u consumer
,这意味着连接、会话和使用者已被缓存

但是,通过使用
CachingConnectionFactory
,您可以将使用者和生产者缓存默认设置为
true
,并在需要时获得对它们的控制权。因此,不需要更多的缓存级别

其他帮助: 下午好

你的理解大体上是正确的。请注意,当您将
CACHE\u CONSUMER
应用于侦听组件时,这意味着Spring JMS消息侦听器应该缓存消息使用者(有些明显)。缓存使用者需要SpringJMS消息侦听器也缓存JMS会话和连接

如果您想要使用事务端点,那么必须从SpringJMS消息侦听器中删除此缓存的责任。在事务处理的情况下,将缓存连接工厂外部化。这就是为什么如果
事务处理
时,级别默认为
缓存_NONE

当您将
transactived
设置为
true
并提供连接工厂时,将创建一个JMS事务管理器,该管理器与连接工厂一起管理事务。这就是为什么SpringJMS消息侦听器无法管理使用者/会话/连接

第一个答案是正确的,使用
CachingConnectionFactory
将获得所需的缓存,并将缓存从Spring消息侦听器容器外部化。允许事务管理器访问JMS会话。

下午好

你的理解大体上是正确的。请注意,当您将
CACHE\u CONSUMER
应用于侦听组件时,这意味着Spring JMS消息侦听器应该缓存消息使用者(有些明显)。缓存使用者需要SpringJMS消息侦听器也缓存JMS会话和连接

如果您想要使用事务端点,那么必须从SpringJMS消息侦听器中删除此缓存的责任。在事务处理的情况下,将缓存连接工厂外部化。这就是为什么如果
事务处理
时,级别默认为
缓存_NONE

当您将
transactived
设置为
true
并提供连接工厂时,将创建一个JMS事务管理器,该管理器与连接工厂一起管理事务。这就是为什么SpringJMS消息侦听器无法管理使用者/会话/连接


第一个答案是正确的,使用
CachingConnectionFactory
将获得所需的缓存,并将缓存从Spring消息侦听器容器外部化。它允许事务管理器访问JMS会话。

我担心的是,在处理JMSComponent时,CACHE_自动返回到CACHE_NONE。因此,即使我使用CachingConnectionFactory,即使缓存级别为cache\u NONE,这些缓存的消费者也会被提取吗?根据我的理解,这里它必须默认为
cache\u CONSUMER
,而不是
cache\u AUTO
。这将是一个很大的帮助,如果来自camel group的人在这里发表评论并确认sameI,我会担心在处理JMSComponent时,CACHE_自动返回到CACHE_NONE。所以即使我使用CachingConnectionFactory,那些缓存的cons