1

我有一个关于 Camel 中的 JMS 的问题。

所以我正在使用一些公司提供的JMS。但是这个 JMS 实现不提供池化连接工厂。

那么骆驼有默认的池连接实现吗?

或者它做一些微不足道的事情,比如:

1) 打开连接

2) 公开课

3) 读/写消息

4) 关闭会话

5) 关闭连接

因为如果相信我的日志骆驼就像我在第二种情况下提到的那样工作。

谢谢。

4

2 回答 2

2

Camel 几乎使用 JmsTemplate(来自 Spring Framework)来发送消息。 ActiveMQs对JmsTemplate的思考

本质上,您确实适用于“生产”场景,除非底层 Jms 提供程序具有池连接工厂。如果您在 App Server 中运行 Spring 或 Camel,通常会出现这种情况。

如果您设置类似

from("jms:queue:QUEUE.IN").to("somewhere:over/the/rainbow");

然后一个或多个正在进行的消费者将处于活动状态,不会破坏每条消息的会话(只有在设置事务时才提交消息)。还可以为 JMS 请求/响应汇集响应侦听器。有关信息,请参阅camel.apache.org/jms

但你是对的,如果你有一个远程(非池化)JMS 提供程序并且经常触发来自 Camel 的传出消息,这可能是一个性能问题。

于 2012-04-27T12:00:21.477 回答
0

使用spring CachingConnectionFactory。顺便提一句。您使用哪个 JMS 提供程序?

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jms/connection/CachingConnectionFactory.html

于 2012-04-28T08:08:47.567 回答