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

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

http://mojavelinux.com
http://mojavelinux.com/seaminaction
http://in.relation.to/Bloggers/Dan