0
我有一個流程,我需要一次寫入3個表格,從調用Web服務。這將是一種單向服務。所以入站是Web服務,出站是帶有3個插入的JDBC。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>
感謝瑞安會,這也方便了刀片是爲了這裏插入的父母必須在孩子之前先發生。 – hpandalai 2014-09-30 21:40:09
是的,因爲它們將是同步的,它們將按照定義的順序運行。 – 2014-09-30 21:50:40