the container retry timeout method when transaction rollback/fails
posted 2 years ago
On p.61 of Frit's notes, it says if a system exception occurs in the @Timeout/ @Timeout's interceptor, the container will
1. log the exception,
2. rollback the transaction if there is a transaction and
3. discard the bean instance (except for singleton bean).
Enthuware also points out one more action the container will do : retry the timeout method at least once for CMT bean, but not sure about BMT bean as the specification does not mention about BMT.
According to session 18.4.3.
if the transaction fails or is rolled back, the container must retry the timeout method at least once.
(This is applicable to CMT, but it does not mention if BMT bean will retry after a transaction is rolled back or fails.
I believe this retry will apply to application exception with @ApplicationException (rollback=true)