You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Valentin Kulichenko <va...@gmail.com> on 2015/07/29 03:03:36 UTC

JTA integration

Igniters,

Today I noticed that there is no documentation on JTA integration we
provide and wanted to add it, but got really confused by configuration we
currently have.

Essentially, the only configuration property we have is
TransactionConfiguration.setTxManagerLookupClassName(String
tmLookupClsName), where tmLookupClsName is a class name of CacheTmLookup
interface implementation. I've got two questions here:

   - Why do we provide the class name instead of CacheTmLookup instance?
   - Why do we need special interface and don't use JCache's Factory
   instead?

We also have two implementations out-of-the-box: CacheJndiTmLookup and
CacheReflectionTmLookup. Both of them have required parameters (e.g., JDNI
names for JNDI lookup) and there is no way to provide them. So they are
useless now.

I think we should:

   - Deprecate current configuration.
   - Add TransactionConfiguration.setTxManagerFactory(Factory<TransactionManager>
   factory) method instead.
   - (optional) Deprecate CacheReflectionTmLookup. It seems confusing and
   not very useful to me (I may be wrong).

Thoughts?

-Val

Re: JTA integration

Posted by Dmitriy Setrakyan <ds...@apache.org>.
This feature has to do with Ignite transactions automatically merging with
JTA /XA transactions. I think we should document existing behavior first,
before we start improving the design or deprecating methods.

Can someone who originally worked on the JTA/XA integration respond to
Valentin's questions?

Thanks,
D.

On Tue, Jul 28, 2015 at 6:03 PM, Valentin Kulichenko <
valentin.kulichenko@gmail.com> wrote:

> Igniters,
>
> Today I noticed that there is no documentation on JTA integration we
> provide and wanted to add it, but got really confused by configuration we
> currently have.
>
> Essentially, the only configuration property we have is
> TransactionConfiguration.setTxManagerLookupClassName(String
> tmLookupClsName), where tmLookupClsName is a class name of CacheTmLookup
> interface implementation. I've got two questions here:
>
>    - Why do we provide the class name instead of CacheTmLookup instance?
>    - Why do we need special interface and don't use JCache's Factory
>    instead?
>
> We also have two implementations out-of-the-box: CacheJndiTmLookup and
> CacheReflectionTmLookup. Both of them have required parameters (e.g., JDNI
> names for JNDI lookup) and there is no way to provide them. So they are
> useless now.
>
> I think we should:
>
>    - Deprecate current configuration.
>    - Add
> TransactionConfiguration.setTxManagerFactory(Factory<TransactionManager>
>    factory) method instead.
>    - (optional) Deprecate CacheReflectionTmLookup. It seems confusing and
>    not very useful to me (I may be wrong).
>
> Thoughts?
>
> -Val
>