代码之家  ›  专栏  ›  技术社区  ›  Matthew Watson

两阶段提交/共享事务

  •  4
  • Matthew Watson  · 技术社区  · 16 年前

    情况是这样的

    我们有两个应用程序A和B,它们都在单独的数据库(Oracle9i)事务中运行。

    应用程序A-将一些数据插入数据库,然后调用应用程序B 应用程序B-将一些数据插入数据库,与A的数据相关(通过外键)。向应用程序A返回“ID” 应用程序A-使用ID插入更多数据,包括来自B的ID

    现在,因为这些是独立的事务,但都依赖于来自其他事务的数据,所以我们需要在对每个应用程序的调用之间提交。当然,如果出现任何问题,这会使回滚非常困难。

    您将如何处理这个问题,只需对代码进行最少的重构。当然,这是SOA世界中的一个常见问题吗?

    ------更新-----

    尽管Oracle11g提供了 DBMS_XA 这正是我想要的。

    5 回复  |  直到 16 年前
        1
  •  11
  •   Zathrus    16 年前

        2
  •  3
  •   jan.vdbergh    16 年前
        3
  •  2
  •   neonski    16 年前

        4
  •  1
  •   Axeman maxelost    16 年前

        5
  •  0
  •   Brad Gilbert    16 年前
    App_A =={0}=>               database # App_A stores information for App_B
    App_A ------> App_B                  # App_A starts App_B
                  App_B <={0}== database # App_B retrieves the information
                  App_B =={1}=> database # App_B stores more informaion
    App_A <={2}== App_B                  # App_B returns 'ID' to App_A
    App_A ={2,3}>               database # App_A stores 'ID' and additional data