2013-08-16 38 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工作