2014-11-06 105 views
0

我正在調用最近的一些遠程API。這是背景。Web服務事務控制

在一個交易中,比方說一個支付工作流程,當客戶通過paypal api成功完成支付後,我需要更新我的本地數據庫(假設更新order_table,更新score_table)。

這將是這樣的:

整個交易
{
援引貝寶API - 成功
更新order_table - 成功
更新score_table - 失敗
}

如果調用貝寶的API一個本地方法調用更新xxx_table,這將是非常簡單的,整個事務將回滾,但在一個遠程API調用,我只是不能回滾它。

問題出在這裏,我們有這個案例的通用解決方案嗎?

任何建議,將不勝感激。

+0

所以問題是如何回滾paypal api的調用? AFAIK你必須自己回滾,例如通過掛鉤事務回滾的回調。 – Thomas 2014-11-06 08:37:15

+0

@Thomas,好吧,我使用paypal來演示這個案例。更精確地說,如何在Web服務調用中進行事務控制。 – user889630 2014-11-06 08:49:22

回答

0

如果web服務在您的控制之下,您可以使用類似JBoss WS-Transactions或類似的東西,具體取決於您的環境。

當訪問第三方網絡服務時,它取決於它們是否提供了這樣的功能,如果不是,你必須自己回滾。

除了分佈式事務可能會導致比他們解決更多的問題,所以你應該仔細考慮你是否真的需要它們。