当 activemq 不工作时,所有 Camel 路由都会停止
All Camel routes stop when activemq is not working
我正在使用具有两条路线的基于 xml 的 camel 上下文。 Route1 从我本地 activeMQ 中的队列中读取,而 Route2 由 camel 计时器组件启动并且没有引用 activeMQ。
启动 activeMQ 后,我启动了我的 camel 应用程序,两条路线都运行良好。但是,当activeMQ停止时,两条路由都停止工作。
既然 Route2 与 activeMQ 没有任何联系,它不应该继续工作吗?我也尝试在两个骆驼上下文中定义 2 条路线,但它没有解决问题。你能帮帮我吗?
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- The ActiveMQ connection factory with specification of the server URL -->
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="failover://tcp://localhost:61616" />
<property name="userName" value="admin"/>
<property name="password" value="admin"/>
</bean>
</property>
</bean>
<bean id="myApp" class="org.camel.poc.App"/>
<bean id="testProcessor" class="org.camel.poc.TestProcessor"/>
<!-- here is Camel configured with a number of routes -->
<camelContext id="camel1" xmlns="http://camel.apache.org/schema/spring">
<route id="3">
<from uri="activemq:queue:testMQ"/>
<!--process ref="myApp"/-->
<to uri="activemq:queue:testMQDestination2"/>
</route>
</camelContext>
<camelContext id="camel2" xmlns="http://camel.apache.org/schema/spring">
<route id="2">
<from uri="timer://foo?fixedRate=true&period=5000"/>
<process ref="testProcessor"/>
</route>
</camelContext>
</beans>
使用 asyncStartListener
选项并将其设置为 true
以启动 ActiveMQ 异步,这将允许其他路由和 Camel 启动。在文档中查看更多相关信息:http://camel.apache.org/jms
<from uri="activemq:queue:testMQ?asyncStartListener=true"/>
我正在使用具有两条路线的基于 xml 的 camel 上下文。 Route1 从我本地 activeMQ 中的队列中读取,而 Route2 由 camel 计时器组件启动并且没有引用 activeMQ。
启动 activeMQ 后,我启动了我的 camel 应用程序,两条路线都运行良好。但是,当activeMQ停止时,两条路由都停止工作。
既然 Route2 与 activeMQ 没有任何联系,它不应该继续工作吗?我也尝试在两个骆驼上下文中定义 2 条路线,但它没有解决问题。你能帮帮我吗?
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- The ActiveMQ connection factory with specification of the server URL -->
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="failover://tcp://localhost:61616" />
<property name="userName" value="admin"/>
<property name="password" value="admin"/>
</bean>
</property>
</bean>
<bean id="myApp" class="org.camel.poc.App"/>
<bean id="testProcessor" class="org.camel.poc.TestProcessor"/>
<!-- here is Camel configured with a number of routes -->
<camelContext id="camel1" xmlns="http://camel.apache.org/schema/spring">
<route id="3">
<from uri="activemq:queue:testMQ"/>
<!--process ref="myApp"/-->
<to uri="activemq:queue:testMQDestination2"/>
</route>
</camelContext>
<camelContext id="camel2" xmlns="http://camel.apache.org/schema/spring">
<route id="2">
<from uri="timer://foo?fixedRate=true&period=5000"/>
<process ref="testProcessor"/>
</route>
</camelContext>
</beans>
使用 asyncStartListener
选项并将其设置为 true
以启动 ActiveMQ 异步,这将允许其他路由和 Camel 启动。在文档中查看更多相关信息:http://camel.apache.org/jms
<from uri="activemq:queue:testMQ?asyncStartListener=true"/>