2.24. JTA
Java Transaction API (JTA) および Narayana トランザクションマネージャーを使用して、Camel ルートをトランザクションに含めます。
2.24.1. 含まれるもの
使用方法と設定の詳細については、上記リンクを参照してください。
2.24.2. Maven コーディネート
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-jta</artifactId> </dependency>
2.24.3. 使用方法
このエクステンションは、ルーターで transacted()
EIP を使用する必要がある場合に追加する必要があります。これは、Quarkus の narayana-jta エクステンションによって提供されるトランザクション機能を利用します。
トランザクションサポートの詳細は、Quarkus Transaction guide を参照してください。簡単な使用方法の場合:
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")
さまざまなトランザクションポリシーのサポートが提供されます。
ポリシー | 説明 |
---|---|
| 現在のトランザクションをサポートします。現在のトランザクションが存在しない場合は例外が発生します。 |
| 現在のトランザクションをサポートしません。現在のトランザクションが存在する場合は例外が発生します。 |
| 現在のトランザクションはサポートせず、常に非トランザクションを実行します。 |
| 現在のトランザクションをサポートします。存在しない場合は新しいトランザクションを作成します。 |
| 新しいトランザクションを作成し、現在のトランザクションが存在する場合はそれを一時停止します。 |
| 現在のトランザクションをサポートします。存在しない場合は、非トランザクションを実行します。 |