私は、EJB上の既存のインテグレーションシステムビルドの一部を置き換えることができる、小さな概念証明のCamelベースのアプリケーション(FuseESB上で実行中)を構築しようとしています。Apache Camel - JDBCストアドプロシージャとトランザクション処理に関する疑問
- JMSテキスト・メッセージが
- に来て、私はメッセージに基づいて、データベースの一連の操作を実行する必要があります。 は今、私は、Apacheラクダと、次のシナリオを処理するための最良の方法を把握しようとしています内容、主に格納されている先行/機能を呼び出す
- 私は返信メッセージを作成して特定のjmsキューに送信する必要があります。
- エラー/例外が発生した場合は、デッドレターチャネル処理メカニズムを使用したいと思います。
キャメルのSQLコンポーネント(私はJDBCコンポーネントをトランザクションクライアントにすることはできないことを理解しています)を使用する方法は、ラクダの簡単なラクラルート、処理エラー、例外を簡単に作成できます。私のdbはすべて単一のトランザクションの一部として呼び出します。私がネット上で見つけたことからCamel SQLコンポーネントはストアドプロシージャを実行するために使用できません - それは本当ですか?もしそうなら、私はjdbc呼び出しを行うためにプロセッサーか単純なpojoクラスを使うべきですか? pojo型やプロセッサ型を使用する場合のトランザクションはどうですか?このようなユースケースをどのように処理するかを記述するリソースへのポインタを高く評価します。
ありがとうクラウス、ルート全体のトランザクションについては、いくつかの豆の中で私のロジックを持っていると言うことができます。例外は、それらのいずれかで例外が発生した場合、すべてのルート)ロールバックできますか? – Kris
次に、TXマネージャをセットアップして、JDBCコールを調整する必要があります。たとえば、通常、そこからデータソース/ jdbc接続を取得する場合です。あなたがSpring TXマネージャーを使用するならば、Camelの経路を設定して、CamelがTXで経路指定を行います。最後にコミット/ロールバックを行います。豆のTX APIを使ってdatasource/jdbc接続を調べて、同じTXに参加できるようにしてください。 –