You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Hamilton Verissimo de Oliveira (Engenharia - SPO)" <ha...@agenciaclick.com.br> on 2004/04/06 21:38:54 UTC
ContainerTransactionContext
Sorry for the annoying messages :-)
The ContainerTransactionContext holds an transaction manager and stores the
transaction created when begin() is invoked. If I'm using other TM
implementation (I'm using JOTM) ContainerTransactionContext wouldn't be
syncronized (except if I change all application code to use it, but that
won't be loosely-coupled, right?) ;-)
First possibility is using TransactionManagerProxy, then a begin() in my
other TM implementation could tell ContainerTransactionContext that
something happened.
Thats 'cause ContainerTransactionContext is a rendezvous point for the rest
of geronimo code, but the rest of my application uses directly the
UserTransaction/TransactionManager interfaces to begin/commit transactions.
Thoughts?
Cheers,
hammett
Re: ContainerTransactionContext
Posted by David Jencks <da...@coredevelopers.net>.
I think if you want to use the geronimo jca framework with another
transaction manager you will need to:
1. set up a (geronimo) TransactionManagerProxy that wraps the other jta
tm. It is designed to wrap an arbitrary jta tm.
2. use the geronimo UserTransactionImpl which knows how to manage the
contents of TransactionContext
or
2.a replicate the TransactionContext interactions some other way
3. manage the InstanceContexts appropriately. See for instance
JettyWebApplicationContext for the simplest example of what is needed.
If you have some kind of container managed transactions, look at the
openejb interceptors.
I haven't studied the JOTM code extensively but it appears to me that
it includes most of the connection management code that is in
TransactionContext and InstanceContext directly in the tm. If this is
accurate, I think this is a questionable design in terms of component
coupling.
Does this make sense?
thanks
david jencks
On Tuesday, April 6, 2004, at 12:38 PM, Hamilton Verissimo de Oliveira
(Engenharia - SPO) wrote:
>
> Sorry for the annoying messages :-)
>
> The ContainerTransactionContext holds an transaction manager and
> stores the
> transaction created when begin() is invoked. If I'm using other TM
> implementation (I'm using JOTM) ContainerTransactionContext wouldn't be
> syncronized (except if I change all application code to use it, but
> that
> won't be loosely-coupled, right?) ;-)
>
> First possibility is using TransactionManagerProxy, then a begin() in
> my
> other TM implementation could tell ContainerTransactionContext that
> something happened.
>
> Thats 'cause ContainerTransactionContext is a rendezvous point for the
> rest
> of geronimo code, but the rest of my application uses directly the
> UserTransaction/TransactionManager interfaces to begin/commit
> transactions.
>
>
> Thoughts?
>
> Cheers,
> hammett
>