Apache Camel是否支持从框中为JMS提供连接池?

时间:2012-04-27 09:53:20

标签: java jms connection-pooling apache-camel

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

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

Camel是否有默认的池连接实现?

或者它确实如此琐碎:

1)打开连接

2)公开会议

3)读/写消息

4)关闭会话

5)关闭连接

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

感谢。

2 个答案:

答案 0 :(得分:2)

Camel几乎使用JmsTemplate(来自Spring Framework)来发送消息。 ActiveMQs thoughts of JmsTemplate

基本上,除非底层Jms提供程序具有池连接工厂,否则您对“生成”方案是正确的。如果您在App Server中运行Spring或Camel,通常就是这种情况。

如果您设置了类似

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

然后一个或多个正在进行的消费者将处于活动状态,而不是销毁每个消息的会话(如果您设置了事务,则仅提交消息)。还有可能为JMS请求/响应汇集响应侦听器。有关信息,请参阅camel.apache.org/jms

但是你是对的,如果你有一个远程(非池)JMS提供程序并且从Camel频繁发送消息,这可能会有一些性能问题。

答案 1 :(得分:0)

使用spring CachingConnectionFactory。顺便说一句。你使用哪个JMS提供商?

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