2011-07-15 24 views

回答

4

編寫審計追蹤。您想記錄某人嘗試做一些事情,而不考慮主事務是成功還是失敗(因此得到回滾)。

+0

這意味着內部交易總是執行,即使外部交易不是? – Erik

+1

@Erik,是的。順便說一句,JTA(在引擎蓋下使用)沒有內部交易的概念。現有的交易被暫停,並且新的交易開始。在新事務的終止(提交或回滾)時,現有的恢復。 –

+1

是的,它們是不同的,有一個「嵌套」事務的其他概念,其中嵌套事務依賴於外部事務。 EJB不支持嵌套事務。 – djna

3

具體用途包括您需要在方法中執行某些工作並在繼續現有事務之前提交的方案。

例如,方法調用的「審計」(而不是日誌記錄)是一種場景,您希望提交審計條目,而不管現有的業務事務是否將提交或最終回滾。

另一種情況是,您有幾個業務事務正在從外觀調用,並且每個這樣的調用必須在將控制權返回給外觀之前提交它的工作。這種情況非常罕見,但是您可能會在創建自己事務的工作流系統中找到這一點(其中條目記錄在工作流的進度中)以及駐留在同一應用程序中的其他組件上的調用必須發生在單獨的事務中。

相關問題