【发布时间】:2014-09-30 18:47:37
【问题描述】:
我有一个流程,我需要从对 Web 服务的调用一次写入 3 个表。这将是一种单向服务。因此,入站是 Web 服务,出站是带有 3 个插入的 JDBC。
这些表是父表和 2 个子表,它们需要按该顺序编写。我是否需要使用同步流以避免多个线程以及我应该使用什么事务?我猜它很简单,因为所有表都在同一个数据库中。下面的定义会起作用吗?
<flow name="xxx" doc:name="xxx" processingStrategy="synchronous">
<http:inbound-endpoint exchange-pattern="one-way" host="localhost" port="3366" doc:name="HTTP" />
<transactional action="ALWAYS_BEGIN">
<jdbc:outbound-endpoint queryKey="insert" queryTimeout="-1" connector-ref="dbConnector" doc:name="Insert 1">
<jdbc:transaction action="ALWAYS_JOIN" />
<jdbc:query key="insert" value="insert into Parent values (#[payload], 'Test 1')" /></jdbc:outbound-endpoint>
<jdbc:outbound-endpoint queryKey="insert2" queryTimeout="-1" connector-ref="dbConnector" doc:name="Insert 2">
<jdbc:transaction action="ALWAYS_JOIN" />
<jdbc:query key="insert2" value="insert into ChildA values (#[payload + 1], 'Test 2')" /></jdbc:outbound-endpoint>
<jdbc:outbound-endpoint queryKey="insert3" queryTimeout="-1" connector-ref="dbConnector" doc:name="Insert 2">
<jdbc:transaction action="ALWAYS_JOIN" />
<jdbc:query key="insert3" value="insert into ChildB values (#[payload + 1], 'Test 2')" /></jdbc:outbound-endpoint>
</transactional>
</flow>
【问题讨论】:
标签: web-services jdbc transactions mule