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 |
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 < [hidden email]> 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 > |
Free forum by Nabble | Edit this page |