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.


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.


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


Many thanks,
Gianny

Reply via email to