On Feb 16, 2006, at 9:30 AM, Claudio Corsi wrote:



David Jencks wrote:

On Feb 16, 2006, at 8:42 AM, Claudio Corsi wrote:
Hi all,

I was wondering if you have a standard process to get an instance of Geronimo TransactionManager instance?

I have been trying to understand your use of the gbean package and it is not readily clear how I can get an instance of the TransactionManager and/or TransactionContextManager instance.
Knowing what kind of component needs the TM or TCM would be a help. One way for a non-geronimo-aware component to use the TCM is demonstrated in the spring tm in the spring module in trunk.

Hi Dave,

Thanks for the reply.

The problem is that I will not know a priori which component is using the TM/TCM.

Let me describe our product. We have a product called ObjectStore JMTL. This product has the ability to implicitly enlist itself as an XAResource with any jta aware app. The way that we implement this feature is by getting a reference to a TM and using this instance to get the current TXN to enlist ourselves. This work is jta implementation specific since there is no standard way to access a TM.

Our reason for implementing this was so that our users do not need to explicitly enlist themselves.

I've looked at the STM implementation and it still requires a TCM name. The question is if this name is unique per application server instance? If it is, how can I get a reference to that unique name? If it is not, how can I determine which one is currently be used?

We need a easier way for non-geronimo stuff to access our components :-)

You should be able to get the TCM name using a GBeanQuery like this:

List names = kernel.listGBeans(new GBeanQuery(null, TransactionContextManager.class.getName()));

This ought to have only one name in it. I should change the STM to use this.

In order to participate in recovery, your XAResource has to actually implement NamedXAResource and supply a name that will be the same each time your component instance starts.

Usually to start a service in geronimo it is easiest to wrap it in a gbean. If you do this you can more easily get the TCM by simply having a gbean reference to it.

thanks
david jencks




thanks,

--Claudio

thanks
david jencks

thanks,

--Claudio

Reply via email to