首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用camel-activemq-starter的transacted标志回滚消息

如何使用camel-activemq-starter的transacted标志回滚消息
EN

Stack Overflow用户
提问于 2020-07-22 09:26:19
回答 1查看 280关注 0票数 2

我正在使用带有yaml自动配置的camel-activemq-starter。当我在消费者上使用"?transacted=true“标志时,消息转到DLQ。我正在寻找的行为是,如果camel路由中存在异常,则不从队列中删除消息。将"transacted=true“标志与camel-sjms和camel-jms一起使用,可以达到预期的效果。提前感谢您的帮助!下面是yaml配置。

代码语言:javascript
复制
camel:
  component:
    reactive-streams:
      thread-pool-max-size: 5
    activemq:
      broker-url: "tcp://localhost:61616"
      connection-factory: ActiveMQConnectionFactory
      transaction-manager: JmsTransactionManager

下面是路由在gneral中的样子:

代码语言:javascript
复制
    fromF("activemq:queue:queue?transacted=true")
                    .routeId("stopThisRoute")
                    .process(exchange -> {
----- something ------
                    })
                    -------
                            throw new IllegalStateException();
========
                        })
                    .end();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-29 01:30:58

添加ack模式修复了camel-activemq-starter的此问题。这可能不是“问题”,只是不同的行为。

代码语言:javascript
复制
camel:
  component:
    activemq:
      broker-url: "tcp://localhost:61616"
      connection-factory: CachingConnectionFactory
      transacted: true
      transaction-manager: JmsTransactionManager
      acknowledgement-mode-name: CLIENT_ACKNOWLEDGE
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63025401

复制
相关文章

相似问题

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