如何在SOA体系结构中使用事务和回滚

qbi*_*son 7 java soa web-services transactions esb

我目前正在开发一个SOA项目.

我必须开发几个处理链,也就是说用Java链接ESB内部的Web服务的Web服务.

由于链接的每个Web服务都会抛出不同的异常,因此我考虑使用Transactions来回滚Web服务行为.

但是,当每个服务都不同时,我不知道在SOA环境中这是否可行.我搜索了一下,发现了一些关于AtomicTransactions的信息,但我不确定它是否可以用来解决我的问题.

总而言之,我的问题是它实际上可以回滚服务吗?如果是这样,我该如何设置它?

提前致谢.

Arn*_*-Oz 10

使用服务之间的事务不是一个好习惯,因为你为不一定值得信赖的组件提供资源,而且服务进程通常是长期运行的(我在" 事务集成反模式 "中写了更多内容).

正如评论中提到的那样,我发现" 传奇模式 "是处理这些长时间运行交互的更好方法

  • 如果您从外部编排所有内容,您确实可以在服务上调用相反的操作.另一种方法是让外部协调器只是协调传奇,让服务知道它失败了.然后,每个服务都可以在内部尽可能地处理故障,以便以其他方式回滚或补偿.如果租约未续订和/或传奇未成功提交,服务还可以保持其承诺的租约并独立回滚 (2认同)