Camelを使用して、Springブートアプリケーションを他のドメインと統合しています。 は、私は簡単なルートは、ポーリングのためのSQLコンポーネントを使用してDBの更新を設定している:Camel SQLコンシューマでトランザクションを開始してさらに使用する方法
from("sql:"+selectSQL+"?consumer.delay=20000&onConsume="+updateSQL)
.log("---select sql done")
.to("sql:" + insertSQL);
とSQL文は、これらのようなものです:
String selectSQL = "SELECT * FROM T1 WHERE PROCESSED is null and ROWNUM <4 for update skip locked";
String updateSQL = "update T1 set PROCESSED='TRUE' where id = :#id";
String insertSQL = "insert into T2 (col_name...) values (col_value...)";
そして私は、これらのSQL文は、単一のポーリングのために1つのトランザクション内で実行したいと思います要求。私は.transacted("propagationPolicy")
で経路を処理できることを知っていますが、from
の前に置くことはできません。
すべてのポーリングをトランザクションにすることはできますか?
PS。私は、タイマーコンポーネントと各SQLの別ルートの回避策がありますが、上記のように1つのルートのみを使用して私の問題を解決することが可能ですか?