【问题标题】:transaction flow with roll back strategy mule具有回滚策略的交易流
【发布时间】:2016-03-19 03:52:35
【问题描述】:

输入:-

<balanceInquiry>
    <request>
      <amount>
        <amount>5.0</amount>
        <currency/>
      </amount>
    </request>
  </balanceInquiry>
<balanceInquiry>
    <request>
      <amount>
        <amount>10.0</amount>
        <currency/>
      </amount>
    </request>
  </balanceInquiry>
<balanceInquiry>
    <request>
      <amount>
        <amount>57.0</amount>
        <currency/>
      </amount>
    </request>
  </balanceInquiry>

我正在尝试使用上述输入访问 SOAP 网络服务,但网络服务一次只能接受一个 balanceInquiry 请求。所以我使用拆分器将请求拆分为不同的 balanceInquiry。但如果第一个请求的状态是成功,那么我必须去第二个等等。如果其中任何一个失败,那么我需要回滚之前的所有事务。根据请求,有一个属性可以是“成功”或“失败”。

所以我想知道在 mule 中是否有任何组件可以实现这一点?请提出建议。

【问题讨论】:

    标签: soap mule mule-component mule-el anypoint-studio


    【解决方案1】:

    我相信你应该看看 foreach 文档。 https://docs.mulesoft.com/mule-user-guide/v/3.7/foreach 和异常处理策略; https://docs.mulesoft.com/mule-user-guide/v/3.7/error-handling.

    如果您的 3 个查询在同一条消息中并且您使用的是默认异常策略,它将回滚以前的事务...假设您正在使用 DB 连接器在数据库中编写 SOAP 响应。

    由于我不确切知道您希望在交易中做什么,这里有另一个有趣的链接:https://docs.mulesoft.com/mule-user-guide/v/3.7/rollback-exception-strategy

    【讨论】:

    • 如果出现任何交易失败,是否有办法为每个人提供服务。我已经实施了 foreach 并且我得到了所有正确的响应。响应 中有一个属性,可以是成功也可以是失败。如果成功,我需要继续进行其他交易,如果失败则我需要停在那里并取消以前的交易......所以如果它失败,有没有办法摆脱foreach???跨度>
    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 2023-02-20
    相关资源
    最近更新 更多