我试图通过WSO2将数据插入到sql中时使用事务。但交易无效。 我正在写下示例代码。
<sequence xmlns="http://ws.apache.org/ns/synapse" name="InsertOrderSequence" onError="myFaultHandler">
<log level="full"></log>
<transaction action="new"></transaction>
<dbreport useTransaction="true">
<connection>
<pool>
<dsName>jdbc/sqlserver</dsName>
</pool>
</connection>
<statement>
<sql>
insert query 1
</sql>
</statement>
<statement>
<sql>
insert query 2
</sql>
</statement>
</dbreport>
<transaction action="commit"></transaction>
</sequence>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="myFaultHandler">
<transaction action="rollback"></transaction>
</sequence>
如果第一个表成功插入并且第二个表成功发生,则应该进行该时间回滚,但回滚不起作用,并且数据插入发生在第一个表中。
请让我知道我在哪里做错了。
答案 0 :(得分:0)
db报告介体不支持数据库的批量插入和相关写入操作。
由于这是对单个数据库表的批量插入,因此您必须使用数据服务功能才能完成此操作。
在WSO2中,数据服务提供了批量插入功能,它为您提供了完成此任务的功能。
因此,您可以在ESB上安装数据服务功能,并使用批量插入选项创建数据服务,如[1]中所示。然后从ESB调用数据服务。
[1] http://pushpalankajaya.blogspot.com/2014/02/wso2-dss-batch-insert-sample-end-to-end.html