2010-06-27 91 views
3

當使用Java Transaction API(JTA)並且我向當前事務註冊同步時,如果事務超時,那麼是否會調用afterCompletion()方法?如果是這樣,那麼將調用afterCompletion()方法的時間,即一旦事務運行超過分配的超時值或當事務發佈超時的第一個操作發生時?狀態參數有什麼價值(我認爲它會是STATUS_ROLLEDBACK)?JTA同步和超時

回答

2

當使用Java Transaction API(JTA),我註冊與當前事務一個Synchronization,將afterCompletion()方法被調用,如果出來的交易時間?

afterCompletion方法被稱爲後的交易致力於回滾所以它應該超時後調用。

如果是這樣,當將在afterCompletion()方法被調用,即一旦事務超過所分配的超時值,或者當發生在交易後超時第一操作運行?

AFAIK,如果事務在超時值過去之前沒有終止(提交或回滾),事務系統將自動回滾它。換句話說,它不會等待事務的後續工作。

狀態參數有什麼價值(我認爲它會回滾)?

我確實會在afterCompletion調用時說Status.STATUS_ROLLEDBACK