【问题标题】:Transaction options over Web Service callsWeb 服务调用的事务选项
【发布时间】:2009-01-21 07:35:29
【问题描述】:

是否有人对网络服务调用中可用的事务选项有任何见解? 1.) 我们有两个应用程序需要它们之间的事务通信。 2.) App1 在应用程序 2 上调用 Web 服务,然后对其自己的数据库进行一些更改。需要协调对 app2 的调用和对其自身数据库的更改。我们应该怎么做?有哪些可能的选择?

【问题讨论】:

    标签: java web-services jakarta-ee transactions


    【解决方案1】:

    您进行 web 服务调用,如果成功,则在您自己的数据库中进行更改。如果更改您自己的数据库失败,则调用 Web 服务以恢复之前调用中所做的更改。为此,Web 服务必须提供还原功能。

    例如,webservice 有 createUser 功能,那么它们应该有 deleteUser 功能。

    【讨论】:

      【解决方案2】:

      这取决于您使用的技术堆栈。在 .Net WCF 中提供了事务功能,否则您唯一能做的就是尽量减少可能发生错误的时间跨度。

      在以前的应用程序中,我已经为服务提供了 Web 服务的令牌。当服务返回(同步或异步)时,它会返回令牌。令牌具有嵌入的时间戳。如果时间戳已过期,则事务将中止,否则我假设 Web 服务调用成功。

      webservice调用成功返回后,NEXT方法调用是记录你系统内的事务。这会创建一个非常小的窗口,其中 Web 服务背后的系统和您的系统将不同步。它还减少了发生意外错误的机会,这将阻止您进行更新/插入。

      【讨论】:

        【解决方案3】:

        你可以试试Atomikos ExtremeTransactions。它包括对回滚跨越多个站点的 WS/SOAP 事务的支持。

        男人

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多