60.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>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>javax.transaction-api</artifactId>
<scope>runtime</scope>
</dependency>
您必须将您的应用程序部署到 JTA 功能容器中,或者提供独立的 JTA 实施。
Important
请注意,对于时间,事务管理器使用 java:/TransactionManager
键查找为 JNDI 资源。
将在以后添加更灵活的策略,以支持更广泛的部署方案。
60.12.1. 事务策略 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Camel CDI 为通常支持的 Camel TransactedPolicy
作为 CDI Bean 提供实施。这些策略可以使用转换的 EIP (例如:
这等同于:
支持的事务策略名称是:
-
PROPAGATION_NEVER
, -
PROPAGATION_NOT_SUPPORTED
, -
PROPAGATION_SUPPORTS
, -
PROPAGATION_REQUIRED
, -
PROPAGATION_REQUIRES_NEW
, -
PROPAGATION_NESTED
, -
PROPAGATION_MANDATORY
.
60.12.2. 事务错误处理程序 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Camel CDI 提供了扩展重新传送错误处理程序的事务错误处理程序,每当发生异常时强制进行回滚,并为每个重新发送创建新事务。
Camel CDI 提供 CdiRouteBuilder
类,它公开 transactionErrorHandler
帮助程序方法,以启用对配置的快速访问,例如: