有没有人对通过网络服务电话提供的交易选项有任何了解? 1.)我们有两个应用程序需要它们之间的事务通信。 2.)App1在app 2上调用Web服务,然后对自己的db进行一些更改。对app2的调用以及对它自己的数据库的更改需要协调。我们应该怎么做?有哪些可能的选择?
答案 0 :(得分:1)
您进行了Web服务调用,如果成功,则在您自己的数据库中进行更改。如果更改自己的数据库失败,则调用Web服务以恢复先前调用中完成的更改。为此,Web服务必须提供恢复功能。
例如,webservice具有createUser函数,然后它们应该具有deleteUser函数。
答案 1 :(得分:1)
答案 2 :(得分:0)
这取决于您使用的技术堆栈。在.Net WCF中提供事务功能,否则您唯一能做的就是最大限度地减少发生错误的时间跨度。
在以前的应用程序中,我已将该服务作为令牌提供给Web服务。当服务返回(同步或异步)时,它返回令牌。令牌具有嵌入的时间戳。如果时间戳已过期,则中止事务,否则我认为Web服务调用成功。
成功返回webservice调用后,NEXT方法调用将在系统中记录事务。这会创建一个非常小的窗口,Web服务和系统后面的系统将不同步。它还可以减少意外错误发生的可能性,从而阻止更新/插入。
答案 3 :(得分:0)
您可以尝试Atomikos ExtremeTransactions。它包括对回滚跨越多个站点的WS / SOAP事务的支持。
盖