59.12. 事务支持


可作为 Camel 2.19 提供

Camel CDI 使用 JTA 支持 Camel 事务客户端。

该支持是可选的,因此在使用 Maven 时通过显式添加 JTA 作为依赖项,在应用程序类路径中具有 JTA,例如:

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <scope>runtime</scope>
</dependency>
Copy to Clipboard

您必须把应用程序部署到 JTA 兼容容器中,或提供独立 JTA 实施。

小心

请注意,事务管理器使用 java:/TransactionManager 键查找为 JNDI 资源。

以后将添加更多灵活的策略来支持更广泛的部署场景。

59.12.1. 事务策略

Camel CDI 为通常受支持的 Camel TransactedPolicy 作为 CDI Bean 提供实施。可使用转换的 EIP (例如,通过转换的 EIP)按名称查找这些策略:

class MyRouteBean extends RouteBuilder {

    @Override
    public void configure() {
        from("activemq:queue:foo")
            .transacted("PROPAGATION_REQUIRED")
            .bean("transformer")
            .to("jpa:my.application.entity.Bar")
            .log("${body.id} inserted");
    }
}
Copy to Clipboard

这等同于:

class MyRouteBean extends RouteBuilder {

    @Inject
    @Named("PROPAGATION_REQUIRED")
    Policy required;

    @Override
    public void configure() {
        from("activemq:queue:foo")
            .policy(required)
            .bean("transformer")
            .to("jpa:my.application.entity.Bar")
            .log("${body.id} inserted");
    }
}
Copy to Clipboard

支持的事务策略名称是:

  • 澳大利亚_NEVER
  • PROPAGATION_NOT_SUPPORTED,
  • PROPAGATION_SUPPORTS,
  • PROPAGATION_REQUIRED,
  • PROPAGATION_REQUIRES_NEW,
  • PROPAGATION_NESTED,
  • PROPAGATION_MANDATORY.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat