2010-07-12 79 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個操作。

如果操作需要用戶輸入 - 不要這樣做。這種長期運行的交易是性能問題和死鎖的主要候選對象。