Web服务事务控制

时间:2014-11-06 08:23:27

标签: java transactions

我正在做一些最近调用的远程api。这是背景。

在交易中,假设有一个支付工作流程,在客户通过paypal api成功完成支付后,我需要更新我的本地数据库(比方说更新order_table,更新score_table)。

就像这样:

全程交易
{
调用paypal api - 成功
更新order_table - 成功
update score_table - 失败
}

如果调用paypal api是一个调用update xxx_table的本地方法,那将非常简单,整个事务将回滚,但在远程api调用中,我只是无法回滚它。

问题是,我们是否有针对此案例的通用解决方案?

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您的网络服务受到您的控制,您可以使用类似JBoss WS-Transactions或类似内容的内容,具体取决于您的环境。

访问第三方网络服务时,取决于他们是否提供类似的功能,如果不是,您必须自己进行回滚。

此外,分布式交易可能会导致比他们解决的问题更多的问题,因此您应该仔细考虑是否真的需要它们。