Am 25.08.12 00:11 schrieb "Marina Vatkina" unter
<marina.vatkina(a)oracle.com>:
You can mark a transaction for rollback inside the beforeCompletion
callback.
BeforCompletion callback is part of the transaction commit process, so
it's too late to request a commit. Nested transactions are not required
to be supported, but you should be able to suspend/resume an active
transaction to run a RequiresNew logic.
AfterCompletion callback is called after all transaction processing has
been finished.
Thanks for clarification. Just found similar statements in the EJB spec
(Didn't expect it there though).
Would you agree with my comment in
https://issues.jboss.org/browse/CDI-213
that CDI should rely on what's already specified for the platform,
especially for container and bean managed transactions and JTA
synchronization callbacks? If so we have to discuss wether CMT/BMT
semantics should be part of the EJB spec and wether the current JTA or
Java EE spec has to include clarifications like yours above.
I have to admit that I do not follow the current JTA spec works nor do I
understand the (political) requirements/consequences if the content of
chapter 13 EJB 3.1 spec gets moved to a better location. I would hope this
will already happen while introducing @Transactional/TransactionScope.
Jens