2011-01-23 58 views
1

我嘗試了幾個事情w/JOTM和有關如何工作的一些通用目的問題。我列出了事件的順序,以便對發生的事情進行明確的總結。爲什麼不從XAResource拋出XAException仍然允許事務提交成功?

  1. 創建TX
  2. 爭取資源
  3. tx.commit
  4. resource.start
  5. resource.end拋出XA EXCEPTION
  6. resource.commit

即使資源.end拋出一個XAException tx commit仍然可以工作,這對我來說顯然是錯誤的。如果它沒有將tx標記爲回滾點,那麼拋出異常的點是什麼...

所有tx管理器是否都像這樣工作,或者拋出XAException失敗tx?

回答

2

TM行爲不僅取決於存在XAException,而且取決於XAException錯誤代碼。從結尾拋出的任何(符合規範的)XA_RB *代碼都應該導致回滾。

0

在我對XA的理解中,準備期間拋出的所有類型的XAException必須導致XA事務的回滾。

HTH。

謝謝, Nitin

相關問題