2.40. JTA
Java Transaction API (JTA) 및 Narayana 트랜잭션 관리자를 사용하여 Camel 경로를 트랜잭션으로 묶습니다.
2.40.1. 내부 내용 링크 복사링크가 클립보드에 복사되었습니다!
사용 및 설정 세부 사항은 위의 링크를 참조하십시오.
2.40.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.40.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")
다양한 트랜잭션 정책에 대한 지원이 제공됩니다.
정책 | 설명 |
---|---|
| 현재 트랜잭션을 지원하고 현재 트랜잭션이 없는 경우 예외를 throw합니다. |
| 현재 트랜잭션을 지원하지 마십시오. 현재 트랜잭션이 있는 경우 예외가 발생합니다. |
| 현재 트랜잭션을 지원하지 마십시오. 오히려 항상 무차별 실행. |
| 현재 트랜잭션을 지원하고 없는 경우 새 트랜잭션을 만듭니다. |
| 새 트랜잭션을 만들고 현재 트랜잭션이 있는 경우 일시 중지합니다. |
| 현재 트랜잭션을 지원합니다. 존재하지 않는 경우 비제한적으로 실행합니다. |