Camel blueprint sql事务管理器

Mil*_*lla 7 java mysql transactions apache-camel

我有两个插件,我想在事务控制下.如果其中一个失败,另一个也不会被执行/插入.这样在MySQL中正确执行时工作正常

START TRANSACTION;
INSERT INTO table (field) VALUES (value);
INSERT INTO table2 (field) VALUES (value);
COMMIT;
Run Code Online (Sandbox Code Playgroud)

现在使用骆驼我已经尝试过了

<to uri="sql:START TRANSACTION; INSERT INTO table (field) VALUES (value);INSERT INTO table2 (field) VALUES (value);COMMIT;"/>
Run Code Online (Sandbox Code Playgroud)

这会产生sql语法错误.我尝试的第二件事是

<to uri="sql:START TRANSACTION"/>
<to uri="sql:INSERT INTO table (field) VALUES (value)"/>
<to uri="sql:INSERT INTO table2 (field) VALUES (value)"/>
<to uri="sql:COMMIT"/>
Run Code Online (Sandbox Code Playgroud)

哪个工作但如果一个插入失败,另一个插入仍在执行和插入.

我也找到了这个 http://camel.apache.org/transactional-client.html,但我使用的是蓝图,这些例子似乎只适用于春天.因此,如果有人用骆驼蓝图做了一个很好的例子,这将是很好的.

任何人都可以帮我在骆驼做这个吗?

gus*_*to2 1

使用 TX 管理器怎么样?定义 XA JDBC 资源并将其用于您的调用,如下所示https://github.com/tmielke/fuse-demos/blob/master/Camel/Camel-JMS-JDBC-XA-TX/routing/src/main /resources/OSGI-INF/blueprint/camel-context.xml

G。