2012-10-17 135 views
1

最近有人問我一個問題,這讓我想到了......想要得到關於同一問題的社區意見。EJB中的事務管理

我有一個CustomerEJB,它有一個createCustomer方法。我的EJB作爲Web服務公開,因此createCustomer是它的一個操作。

當一個請求命中createCustomer,2個操作需要進行

  1. 一個INSERT SQL查詢到該排在輸入請求
  2. 創建一個文本文件中可以加入一定的數據到數據庫數據庫在文件系統中說.txt。

現在的問題是我想將這兩個任務結合到一個事務中。如果任何一項任務失敗,我也會回滾其他任務。

沒有提及任何熱門技術,如Spring/Hibernate的是什麼,我可以遵循事務管理

我的想法的方法:1。 我可以使用JTA,劃定事務邊界並進行提交,並相應地回滾。 JDBC可用於SQL任務 2.我可以使用DAO的

邀請你的那種建議/評論

+0

http://stackoverflow.com/questions/892349/is-there-an-open-source-solution-to-xa-transactional-file-access-in-java – Uncredited

回答

1

您將需要包裝的文件中XA的JCA連接器(不知道是否有一個現成的創建一個快捷方式只發現了這個不支持事務的fsconnector),併爲您的數據庫事務使用XA驅動程序(大多數數據庫將能夠處理此事務),然後將您的EJB包裝在XA事務中(應該是直截了當的)。

只要這兩個資源都可以處理XA事務,就會得到兩階段提交的好處,這就是您所追求的目標。

+0

感謝您的回答..感謝提及兩階段提交 – HungryForKnowledge