179.17. 启用转换的消耗


常见要求是从事务中的队列使用,然后使用 Camel 路由处理消息。要做到这一点,请确定您在 component/endpoint 中设置以下属性:

  • transacted = true
  • transactionManager = Transsaction Manager - 通常 JmsTransactionManager

详情请查看 Transactional Client EIP 模式。

通过 JMS 进行事务处理和 [Request Reply]

当使用 Request Reply over JMS 时,您无法使用单个事务 ; JMS 不会在执行提交前发送任何消息,因此在事务提交前,服务器端不会收到任何内容。因此,要使用 Request Reply,您必须在发送请求后提交事务,然后使用单独的事务接收响应。

要解决这个问题,JMS 组件使用不同的属性来指定用于单向消息传递和请求回复消息传递的事务:

transacted 属性适用于 InOnly message Exchange Pattern (MEP)。

transactedInOut 属性适用于 InOut (Request Reply)消息交换模式(MEP)。

如果要将事务用于 Request Reply(InOut MEP),您必须设置 transactedInOut=true

从 Camel 2.10 开始提供

您可以使用以下 component/endpoint 的属性利用 DMLC 转换会话 API

  • transacted = true
  • lazyCreateTransactionManager = false

这样做的好处是,在没有配置的 TransactionManager 的情况下使用本地事务时,将遵循 cacheLevel 设置。当配置了 TransactionManager 时,在 DMLC 级别不需要缓存,需要依赖池的连接工厂。有关这类设置的详情,请查看 这里此处

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.