169.15. トランストラクトの有効化
一般的な要件は、トランザクションのキューから消費し、Camel ルートを使用してメッセージを処理することです。これを実行するには、コンポーネント/エンドポイントに以下のプロパティーを設定するだけです。
-
transacted
= true -
TransactionManager
= Transsaction Manager (通常はJmsTransactionManager
)
詳細は、「Transactional Client EIP パターン」を参照してください。
トランザクションおよび JMS 上の [Request Reply]
JMS で Request Reply を使用すると単一のトランザクションを使用することはできません。JMS はコミットが実行されるまでメッセージを送信しないため、サーバー側はトランザクションのコミットまで何も受信しません。そのため、要求応答 を使用する には、リクエストの送信後にトランザクションをコミットし、応答を受信するために別のトランザクションを使用する必要があります。
この問題に対応するために、JMS コンポーネントは異なるプロパティーを使用して一方向メッセージングおよび要求応答メッセージングにトランザクションの使用を指定します。
transacted
プロパティーは、InOnly メッセージ交換パターン(MEP)に のみ 適用されます。
transactedInOut
プロパティーは InOut(Request Reply)メッセージ交換パターン(MEP)に適用されます。
リクエスト応答(InOut MEP)にトランザクションを使用する場合は、transactedInOut=true
を設定する 必要 があります。
Camel 2.10 で利用可能
コンポーネント/エンドポイントの以下のプロパティーを使用して、DMLC transacted セッション API を使用できます。
-
transacted
= true -
lazyCreateTransactionManager
= false
この利点は、設定された TransactionManager なしでローカルトランザクションを使用する場合、cacheLevel 設定を適用することです。TransactionManager の設定時に、DMLC レベルでキャッシュが発生しず、プールされた接続ファクトリーに依存する必要はありません。このようなセットアップの詳細は、ここと こちら を参照してください。