On Jul 24, 2006, at 1:47 PM, David Blevins wrote:
On Jul 23, 2006, at 9:59 PM, Dain Sundstrom wrote:
One of the biggest problem with using the OpenEJB 2 containers in
3 is the extensive use of Geronimo's TransactionContextManager
class to track transaction related data and to demarc transaction
boundaries. I have just committed the necessary changes to remove
this dependency. We are now managing our own transaction data in
the EjbTransactionContext object (note this is different from the
1 TransactionContext class), and transaction demarcation is
handled by directly manipulating the transaction manager.
Huge improvement.
Thanks :)
I'd like to drop the transaction policy code from the 2 tree
entierly and simply convert the 1 transaction code to an
javax.interceptor.Interceptor implementation, but that is for
another thread.
+1 to that.
Anyways, we are one big step closer merged the 1 and 2 code bases :)
In the interest of keeping 3 and 2 close together as to make it as
easy as possible for Geronimo to upgrade to 3, what do you think
about merging that back into 2?
I'd love to merge this back into 2 but that will be difficult. The
problem is Geronimo needs to have all transactions demarcated on
TransactionContextManager. If you go directly to the
TransactionManager, the TransactionContextManager will not know that
the transaction state changed under it's feet and will enter an
"inconsistent state".
If we want to merge this into OpenEJB 2 we will either need to create
a TransactionManager implementation that is a wrapper around
TransactionContextManager (there is one in the jencks project that
does that), or we need to convince Geronimo to drop the
TransactionContextManager and just use TransactionManager directly.
The first first option may be possible, but I expect there to be
sublet bugs in the wrapper layer, and the second would be a pretty
big move for Geronimo. After this work, removing TCM from geronimo
will be much easier since OpenEJB was the single biggest user of the
service. The only other service I'm aware of that uses it is the
connector code. Another nice benefit of dropping the TCM is geronimo
components will be much more useable outside of geronimo which will
expand the community.
Anyway, I'll if you want I can take a deeper look at what it will
take to merge this work back into 2.
-dain