Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web服务事务控制_Java_Transactions - Fatal编程技术网

Java Web服务事务控制

Java Web服务事务控制,java,transactions,Java,Transactions,我最近正在研究一些远程api调用。这就是背景 在交易中,比如说支付工作流,客户通过paypal api成功完成支付后,我需要更新我的本地数据库(比如更新订单表、更新分数表) 是这样的: 整个交易{ 调用paypal api-成功 更新订单表格-成功 更新分数表-失败 } 如果调用paypal api的是一个本地方法,调用类似于update xxx_table的方法,这将非常简单,整个事务将回滚,但在远程api调用中,我无法回滚它 问题来了,我们是否有一个通用的解决方案 任何建议都将不胜感激。如果

我最近正在研究一些远程api调用。这就是背景

在交易中,比如说支付工作流,客户通过paypal api成功完成支付后,我需要更新我的本地数据库(比如更新订单表、更新分数表)

是这样的:

整个交易
{
调用paypal api-成功
更新订单表格-成功
更新分数表-失败
}

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

问题来了,我们是否有一个通用的解决方案


任何建议都将不胜感激。

如果Web服务在您的控制之下,您可以根据您的环境使用类似或类似的服务

当访问第三方Web服务时,这取决于它们是否提供这样的功能,如果没有,您必须自己执行回滚


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

所以问题是如何回滚paypal api的调用?好吧,你必须自己做回滚,例如通过挂接回调进行事务回滚。@Thomas,我用paypal来演示这个例子。如何在web服务调用中进行事务控制将更加精确。