2012-04-27 52 views
1

我有一個關於駱駝JMS的問題。Apache Camel是否支持JMS的連接池?

所以我使用某些公司提供的JMS。但是這個JMS實現不提供Pooled連接工廠。

那麼駱駝有默認的池連接實現?

或者它做不服瑣碎等:

1)打開連接

2)打開會話

3)讀/寫消息

4)關閉會話

5 )關閉連接

因爲如果相信我的話就像我在第二種情況中提到的那樣,駱駝像駱駝一樣。

謝謝。

回答

2

駱駝幾乎使用JmsTemplate(來自Spring Framework)發送消息。 ActiveMQs thoughts of JmsTemplate

實質上,對於「生產」方案而言,您是正確的,除非底層Jms提供程序具有池化連接工廠。如果您在App Servers中運行Spring或Camel,通常就是這種情況。

如果設置了類似

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

然後一個或多個要去的消費者將是積極的,不是每個消息破壞會話(僅當您設置了交易的commiting消息)。還可以爲JMS請求/響應池化響應偵聽器。有關信息,請參閱camel.apache.org/jms

但是你是對的,如果你有一個遠程(非池化)的JMS提供者並且會觸發來自Camel的頻繁發出的消息,這可能會帶來一些性能問題。

0

使用spring CachingConnectionFactory。順便說一句。您使用哪個JMS提供程序?

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

+0

我們正在使用[Solase](http://solacesystems.com/)。 CachingConnectionFactory適用於一次故障轉移([link](http://singztechmusings.wordpress.com/2011/06/21/pooledconnectionfactory-vs-cachingconnectionfactory-which-one-is-a-perfect-match-for-spring-jmstemplate /)),但我們有幾個。 – nkukhar 2012-04-30 10:44:14

+0

通常可以在jms連接字符串中配置故障轉移。例如,在使用故障轉移傳輸的ActiveMQ中:http://activemq.apache.org/failover-transport-reference.html。也許安慰也提供了這樣的聯繫? – 2012-05-21 09:32:42