On Saturday, July 10, 2004, at 06:57 PM, Gianny Damour wrote:

On 11/07/2004 5:24 AM, David Jencks wrote:


Since it is unlikely that anyone will be running more than one TransactionManager/XATerminator in a geronimo server, perhaps this should be made a little clearer by specifying the WorkManager directly in the ResourceAdapter config and constructing a BootstrapContext per ResourceAdapter instance. Opinions?

I agree. Perhaps that there is also something not so obvious - at least for me: a BootstrapContext must reference the same XATerminator used under the cover by the XAWork referenced by the WorkManager of this context.


The current dependencies are something like that:

TransactionManager <---- XAWork<---- WorkManager <---- BootstrapContext;
^ |
| -------------------------------------------------------------------


So, is it possible to make it "clearer" by providing to the (Geronimo)WorkManager a TransactionManager(Proxy)? This latter still provides an XAWork view in order to recreate resource adpater transactions; one adds to the (Geronimo)WorkManager a getter for this XATerminator reference/attribute; and BootstrapContext only needs by now a simple reference to (Geronimo)WorkManager.

This way, the dependencies could be more abvious - one more time, at least for me:
TransactionManager <---- WorkManager <---- BootstrapContext.

I think this is an excellent idea. My idea for the TransactionManagerProxy was that you could get the TransactionManager, XATerminator, and XAWork from it, so supplying it to the WorkManager will eliminate this possible inconsistency. I've implemented this.

By the way, as I am talking about XAWork, I think that there are some concurrency issues: the begin and end methods should be synchronized otherwise, it is possible to run two Work concurrently having the same ExecutionContext.

Very true! that's not the only problem, resume and suspend also weren't getting called on the delegate tm.


Also, perhaps we should adopt a naming convention for all these gbeans such as


geronimo.server:type=BootstrapContext,name=MyBootstrapContext

Is it possible to have a distinct domain for the JCA services? I mean something like:
geronimo.jca:type=BootstrapContext,name=MyBootstrapContext


Moreover, one could perhaps use the naming conventions proposed by JSR-77. For instance, a WorkManager could be name:
geronimo.jca:type=WorkManager,BootstrapContext=MyBootstrapContext

First of all, I meant

geronimo.server:type=WorkManager,name=MyWorkManager

I'd like to use JSR-77 compliant names, but I'm not entirely sure what they would be. Maybe Dain can suggest something? Meanwhile I'm just using this pattern, and the geronimo-ra.xml just requires "MyWorkManager"

many thanks,
david jencks

Many thanks, Gianny




Reply via email to