Java 骆驼蓝图sql事务管理器

Java 骆驼蓝图sql事务管理器,java,mysql,transactions,apache-camel,Java,Mysql,Transactions,Apache Camel,我有两个插件,我想在事务控制下进行。如果其中一个失败,则不得执行/插入另一个。在MySQL中这样做很好 START TRANSACTION; INSERT INTO table (field) VALUES (value); INSERT INTO table2 (field) VALUES (value); COMMIT; 现在我已经试过了 <to uri="sql:START TRANSACTION; INSERT INTO table (field) VALUES (value);

我有两个插件,我想在事务控制下进行。如果其中一个失败,则不得执行/插入另一个。在MySQL中这样做很好

START TRANSACTION;
INSERT INTO table (field) VALUES (value);
INSERT INTO table2 (field) VALUES (value);
COMMIT;
现在我已经试过了

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

这会产生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"/>

这是可行的,但如果一个插入失败,另一个仍在执行和插入

我也发现了这个 但我使用的是blueprint,这些示例似乎只针对spring。所以,如果有人有一个很好的例子,用骆驼蓝图来做这件事,那就太好了


有人能帮我在camel中完成这项工作吗?

使用TX管理器怎么样? 定义XAJDBC资源并将其用于您的调用,如下所示

G.

确保“引擎”是InnoDB(不是MyISAM)。MyISAM以静默方式忽略事务语句(
START
COMMIT


使用mysql命令行工具,执行
showcreatetable…
。在表的末尾,它将指定引擎。

这是如何工作的?我的意思是,您的uri只是一个SQL语句。没有与之关联的组件。你可以发布你的整个路线吗,即Blueprint.xml.Oh sry忘记了“sql:”-现在添加了它。如果我没记错我的德语,我可以添加它。最后一件事你提到语法错误,你也可以发布错误。任何线索都会有帮助。