Feb 10th, 2012, 03:55 PM
Status.MARKED_AS_ROLLBACK is not supported by Transaction API
We use @Transactional (Spring 3.0.3.RELEASE) for transaction management in our business services.
But we have a problem when using EjbContext.setRollbackOnly() with a ejb called by a transactional business service.
EjbContext.setRollbackOnly() set the jta transaction status as STATUS_MARKED_AS_ROLLBACK.
When back to Spring, TransactionInterceptor call commit on PlatformTransactionManager (JtaTransactionManager).
The commit method then throw an UnexceptedRollbackException (JBoss [EAP 4.2.3] throw a RollbackException before when Spring try to commit).
Indeed, Spring checks the status of the jta transaction but only for STATUS_NO_TRANSACTION and STATUS_ROLLBACK and not for STATUS_MARKED_AS_ROLLBACK.
We fix the problem by decorating the JtaTransactionManager and propagating the rollback to spring in the commit method if the jta transaction status is equals to STATUS_MARKED_AS_ROLLBACK.
Could someone explain to me why spring doesn't support the status STATUS_MARKED_AS_ROLLBACK ??
Thank you for your help.
ps: excuse me if did some english clerical errors in my post.
Feb 14th, 2012, 03:26 PM
up. Nobody to give me information ?
Tags for this Thread