2009-12-14 131 views
1

就我們所知,我們需要應用XA概念才能正確處理事務,最好的做法是處理多個EAR和同一事務。但顯然在我們一直在努力的當前項目中,這不是創建和更新所必需的;然而,如果我們嘗試從實體中檢索任何集合,我們會得到一個錯誤,表明它沒有活動事務或它已關閉,但是如果我們更新Ear A中的實體A並更新Ear B中的實體B,它會在完全實體A而實體B有不同的數據源,在這一點上我們很困惑,因爲我們還沒有配置任何xa數據源。如何處理這個最好的方法。事務是bean處理,而不是容器和數據源在EAR A和EAR之間不同B在不同的EAR上處理交易

+0

你好,如果你向我們解釋你想達到什麼以及你有什麼問題,我會更好。應用程序A和B之間的關係是什麼(它們共享相同的數據,它們是否互相調用?) – pgras 2009-12-15 07:07:48

回答

1

如果您想在單個事務中使用多個資源(數據庫,JMS資源,JCA連接器),則需要XA交易(也被稱爲「全球事務)。XA事務涉及的協調JTA事務管理器通過兩階段提交(2PC)協議。有關XA更多詳細信息,請參閱從麥克Spille這個完美的事情,XA Exposed職位。

(...)如果我們更新Ear A中的實體A並更新Ear B中的實體B,當實體A和實體B具有不同的數據源時,它可以很好地工作

你如何執行更新(我的意思是從哪裏來的)? 「它有效」是什麼意思?你確定在出現問題時兩個更新都會回滾嗎?如果沒有使用全球交易,我會很驚訝。你能澄清一點嗎?