2.61. JTA
使用 Java Transaction API (JTA)和 Narayana 事务管理器将 Camel 路由包含在事务中
2.61.1. 什么是内部 复制链接链接已复制到粘贴板!
有关用法和配置详情,请参阅上述链接。
2.61.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建新项目
或者将协调添加到现有项目中:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-jta</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jta</artifactId>
</dependency>
2.61.3. 使用方法 复制链接链接已复制到粘贴板!
当您需要在路由器中使用 transacted ()
EIP 时,应添加此扩展。它利用 Quarkus 中 narayana-jta 扩展提供的事务功能。
有关事务支持的详情,请参阅 Quarkus Transaction 指南。对于简单用法:
from("direct:transaction") .transacted() .to("sql:INSERT INTO A TABLE ...?dataSource=#ds1") .to("sql:INSERT INTO A TABLE ...?dataSource=#ds2") .log("all data are in the ds1 and ds2")
from("direct:transaction")
.transacted()
.to("sql:INSERT INTO A TABLE ...?dataSource=#ds1")
.to("sql:INSERT INTO A TABLE ...?dataSource=#ds2")
.log("all data are in the ds1 and ds2")
为各种事务策略提供支持。
策略 | 描述 |
---|---|
| 支持当前的事务;如果没有当前的事务,则抛出异常。 |
| 不支持当前的事务;如果存在当前的事务,则抛出异常。 |
| 不支持当前的事务,而是始终以非事务的方式执行。 |
| 支持当前的事务;如果不存在,创建一个新事务。 |
| 创建新的事务,如果存在,暂停当前事务。 |
| 支持当前的事务;如果没有任何事务,则以非事务处理方式执行。 |