【问题标题】:Mule:Transaction manager for subflowMule:子流的事务管理器
【发布时间】:2015-03-03 05:27:18
【问题描述】:

尝试为包含各种子流的 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>

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

【问题讨论】:

    标签: transactions mule mule-studio mule-component


    【解决方案1】:
    • 在您的流引用周围放置一个transactional 范围,
    • 对您的子流使用sub-flow 而不是flow,这样子流中发生的异常就会冒泡到调用者流的事务范围内。

    【讨论】:

    • 感谢@david。但是使用流并不是更好,因为我们可以为流指定异常策略,否则在子流中它将继承主流的异常策略。
    • 您可以使用flows,但您必须非常小心您的本地异常策略,以避免在需要时阻止事务回滚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多