On Wed, Aug 26, 2009 at 8:55 PM, Stuart Douglas <stuart@baileyroberts.com.au> wrote:
I would like to implement REQUIRES_NEW as a transaction type for the
@Transactional annotation. My basic plan is:

- Create a TransactionManager component that can be installed into
components.xml, and give the option to configure the JNDI location of
the JTA TransactionManager.

- modify the Work.workInTransaction method to check if the existing
transaction need to be suspended, as if so use the TransactionManager
component to suspend and resume the transaction.

I can't help thinking that there is some problem with this approach,
otherwise someone else would have already done it.

Try it, create some tests and if it works, prove it.

I also know that TransactionManager is not supposed to be used by the
application, does anyone know if this will cause problems?

Spring has been doing this for a long time. It's of course app server dependent, but the general feeling is that using it is so common to consider it a public API.

I would also like to implement the ability to control seam global
transactions based on a flag in pages.xml, so they can be disabled for
specific views. Would anyone have any objections to this?

I've always been in favor of this idea.


Dan Allen
Senior Software Engineer, Red Hat | Author of Seam in Action
Registered Linux User #231597