You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by David Jencks <da...@yahoo.com> on 2004/11/07 21:54:12 UTC

Is transaction control leaking around the TransactionContextManager?

The TransactionContextManager has a getTransactionManager method that 
returns the underlying TransactionManager.  This is used only by 
EJBModuleImpl to give the tmDelegate.  I haven't looked but I think 
this is used by tranql/cmp.

This seems wrong to me.  I think it could result in the transaction 
context being out of synch with the underlying transaction.

Should the ejb module just be using the TransactionContextManager?

Should the TransactionContextManager expose the TransactionManager 
interface, and have it work only with ContainerTransactionContext?

Is the reference needed at all?  Is it possible to arrange that all 
tx-related info is supplied directly in any calls into tranql?

Have I missed something?

thanks
david jencks


Re: Is transaction control leaking around the TransactionContextManager?

Posted by Jeremy Boynes <jb...@gluecode.com>.
TranQL uses TM directly to avoid any dependency on Geronimo.

IIRC the only place it is used is to support collection-valued accessors 
for EJBs - the spec requires that at the end of the transaction any 
returned Collections become inoperative. Have look at MultiValuedCMRAccessor

Alternatively you might contemplate moving the EJB code from TranQL into 
OpenEJB which would allow closer coupling.

--
Jeremy

David Jencks wrote:
> The TransactionContextManager has a getTransactionManager method that 
> returns the underlying TransactionManager.  This is used only by 
> EJBModuleImpl to give the tmDelegate.  I haven't looked but I think this 
> is used by tranql/cmp.
> 
> This seems wrong to me.  I think it could result in the transaction 
> context being out of synch with the underlying transaction.
> 
> Should the ejb module just be using the TransactionContextManager?
> 
> Should the TransactionContextManager expose the TransactionManager 
> interface, and have it work only with ContainerTransactionContext?
> 
> Is the reference needed at all?  Is it possible to arrange that all 
> tx-related info is supplied directly in any calls into tranql?
> 
> Have I missed something?
> 
> thanks
> david jencks