У меня есть поток, где мне нужно писать в 3 таблицы сразу из вызова веб-службы. Это будет одностороннее обслуживание. Таким образом, входящий веб-сервис, а исходящий - JDBC с 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>
спасибо Райан будет это также облегчит вставки в порядок здесь insert parent должен произойти сначала перед дочерними элементами. – hpandalai
Да, поскольку они будут синхронными, они будут работать в определенном порядке. –