2010-07-12 76 views
0

我开始使用服务在Java中,我一直在谷歌一段时间,但我仍然不知道什么时候需要处理交易y几项服务,例如,如果创建客户端使用3个服务,并且第三个服务崩溃,我如何回滚2个以前的服务?任何链接或解释都可能有帮助从哪里开始管理事务在java SOA应用程序

+0

您是否想使用服务技术进行远程处理,或者您是否想开始构建基于SOA的应用程序? SOA不仅仅是使用SOAP等服务技术来执行远程调用。在SOA中,每个服务都由合同定义,如果您需要能够“撤销”调用的效果,则需要在服务定义中包含该可能性。 – Kwebble 2010-07-12 21:02:30

回答

0

为此,您需要分布式转换,这正是Java Transaction API的用途。像SpringJava EE's EJB container这样的应用程序服务器支持JTA,并通过注释或声明性配置使其非常易于使用。

+0

我终于修好了,使用JTA类XAResource,Xid和XConnection =) – Eduardo 2010-07-30 14:50:19

1

如果客户端需要事务性地调用多个服务方法,那么您最好创建一个facade class,它可以事务性地执行3个操作。

如果操作需要用户输入 - 不要这样做。这种长期运行的交易是性能问题和死锁的主要候选对象。