Java Transaction API (JTA) を使用していて、現在のトランザクションに同期を登録すると、トランザクションがタイムアウトした場合に afterCompletion() メソッドが呼び出されますか? その場合、 afterCompletion() メソッドはいつ呼び出されますか? つまり、トランザクションが割り当てられたタイムアウト値を超えて実行された直後、またはタイムアウト後のトランザクションで最初の操作が発生したときですか? status 引数にはどのような値がありますか (STATUS_ROLLEDBACK になると思います)?
1 に答える
2
Java Transaction API (JTA) を使用
Synchronizationして現在のトランザクションに登録すると、afterCompletion()トランザクションがタイムアウトした場合にメソッドが呼び出されますか?
このafterCompletionメソッドは、トランザクションがコミットまたはロールバックされた後に呼び出されるため、タイムアウト後に呼び出す必要があります。
その場合、
afterCompletion()メソッドはいつ呼び出されますか、つまり、トランザクションが割り当てられたタイムアウト値を超えて実行されたとき、またはタイムアウト後のトランザクションで最初の操作が発生したときですか?
私の知る限り、タイムアウト値が経過する前にトランザクションが終了 (コミットまたはロールバック) されていない場合、トランザクション システムは自動的にそれをロールバックします。つまり、トランザクションの後続の作業を待機しません。
status 引数にはどのような値がありますか (ロールバックされると思います)?
私は確かに呼び出しStatus.STATUS_ROLLEDBACKの時に言うでしょう。afterCompletion
于 2010-06-27T17:42:22.647 に答える