首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >骆驼交易如何处理硬件故障?

骆驼交易如何处理硬件故障?
EN

Stack Overflow用户
提问于 2012-09-17 16:30:55
回答 1查看 1.3K关注 0票数 1

我正在调查运行在ServiceMix (v4.4.2)中的骆驼事务。以下是我的路线:

代码语言:javascript
复制
from(WEBSERVICE_CAMEL_ENDPOINT).to("jms:queue:a");

from("jms:queue:a")
.transacted("PROPAGATION_REQUIRED")
    .process(new Processor() {
        @Override
        public void process(Exchange arg0) throws Exception {                
            System.exit(1); // A
        }
    })
;

以下是相关的bean:

代码语言:javascript
复制
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61616" />
</bean>
代码语言:javascript
复制
<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
    <property name="transacted" value="true" />
    <property name="transactionManager" ref="txManager" />
    <property name="useMessageIDAsCorrelationID" value="true" />
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>

<bean id="PROPAGATION_REQUIRED" class="org.apache.camel.spring.spi.SpringTransactionPolicy">
    <property name="transactionManager" ref="txManager" />
    <property name="propagationBehaviorName" value="PROPAGATION_REQUIRED" />
</bean>

当我运行这个并调用web服务时,ServiceMix就关闭了。当我重新启动ServiceMix时,消息已被移动到死信队列(ActiveMQ.DLQ)。如果我在A点放置一个断点并手动并使用Task关闭ServiceMix,我会看到同样的行为。

这是什么时候完成的以及如何完成的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-17 20:29:03

首先,您将事务协议与非事务性协议混合在一起。只要你知道你在哪里交易,那就没问题了。

当您运行第一条路由时,from(WEBSERVICE_CAMEL_ENDPOINT).to("jms:queue:a"); Camel将尝试将消息从WS放到ActiveMQ中的队列A。如果成功(SMX在此过程中未激活),ActiveMQ已经将消息放到队列A上的持久磁盘上。

那么你的第二条路线就会触发。Camel将从队列中读取消息,并对事务进行处理。消息将被标记为在ActiveMQ中删除。如果路由被完全处理,事务将提交,没有任何例外。只有当Camel提交消息时,它才会从ActiveMQ中删除。在您的示例中,您不正常地结束了路由,因此事务不会被执行,因此消息不会从队列中删除。

在事务回滚的情况下(或者根本没有回滚),如果消息被放回队列"a“或放入死信队列,则ActiveMQ重新传递策略将处理。

点击这里阅读更多内容。http://activemq.apache.org/message-redelivery-and-dlq-handling.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12463484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档