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

Reply via email to