尝试为包含各种子流的mule流实现事务方法,并且每个子流包含使用invoke组件在spring bean中的一些数据库插入。
<amqp:inbound>
<flow ref="subflow1">
<flow ref="subflow2">
<flow ref="subflow3">
<amqp:outbound>
其中subflow1和subflow 2都包含对调用DAO数据库操作的服务bean的调用(使用hibernate会话).Subflow3调用外部系统。
<flow name="subflow1">
<invoke object-ref="serviceBean" method="databaseOperation" methodArguments="#[message.inboundProperties]"/>
</flow>
建议实现事务管理器的最佳方法,如果任何子流失败,则应回滚在先前子流中完成的所有insert语句。
答案 0 :(得分:0)
transactional
范围
sub-flow
代替flow
用于您的子流,因此在其中发生的异常将冒泡到调用者流的事务范围。