2013-08-16 39 views
1

我生產一個ActiveMQ的實例與駱駝的ActiveMQ組件JMS INONLY行爲:Apache的駱駝 - 當經紀人下來

<camel:log message="YMA_IN" /> 
<camel:inOnly uri="activemqBroker:queue:queue.test" id="activemqBrokerTestQueue"/> 
<camel:log message="YMA_OUT" /> 

端點上唯一的JMS配置是TTL和連接池工廠。

<amq:connectionFactory id="jmsConnectionFactory" brokerURL="${config.jms.broker.url}" /> 

<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop"> 
    <property name="maxConnections" value="15" /> 
    <property name="connectionFactory" ref="jmsConnectionFactory" /> 
</bean> 

<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration"> 
    <property name="connectionFactory" ref="pooledConnectionFactory"/> 
    <property name="timeToLive" value="${config.jms.time.to.live}" /> 
</bean> 

<!-- Broker configuration --> 
<bean id="activemqBroker" class="org.apache.activemq.camel.component.ActiveMQComponent"> 
    <property name="configuration" ref="jmsConfig"/> 
</bean> 

如果代理下來,交流仍然停留在INONLY(登錄而不是OUT),貌似無限期,直到經紀人備份。沒有例外,沒有超時等...

這是預期的行爲,如果經紀人宕機?我期待着一個例外?有一些配置我錯過了嗎?

駱駝2.10.1

回答

0

事實上,這似乎是預期的行爲:超時必須在代理URL本身配置。

以下的答案必須說明如何進行配置:

https://stackoverflow.com/a/15416704/609452

隨後的JMSException的一個簡單的try/catch工作