Mule:Transaction 子流管理器

Mule:Transaction manager for subflow

尝试为包含各种子流的 mule 流实现事务方法,并且每个子流都包含使用调用组件在 spring bean 中插入的一些数据库。

<amqp:inbound>
    <flow ref="subflow1">
    <flow ref="subflow2">
    <flow ref="subflow3">
<amqp:outbound>

其中 subflow1 和 subflow 2 都包含对调用 DAO 数据库操作(使用休眠会话)的服务 bean 的调用。Subflow3 是对外部系统的调用。

<flow name="subflow1">
        <invoke object-ref="serviceBean" method="databaseOperation" methodArguments="#[message.inboundProperties]"/>
</flow>

建议实现事务管理器的最佳方法,如果任何子流失败,则在早期子流中完成的所有插入语句都应回滚。

  • 在您的流程参考周围放置一个 transactional 范围,
  • 对您的子流程使用 sub-flow 而不是 flow,因此其中发生的异常将冒泡到调用方流程的事务范围。