Hello,
     My requirement is to achieve ignite cache update operation and
database write operation in single transaction.
Right now I am trying to use  JTA transaction management. I have created
below IgniteConfiguration  using transactionConfiguration. But I am not
sure how to configure XAResource to this transaction manager.
I will be needing two XAResource here 1)Datasource(JDBC data source)
2)Ignite cache.

Please suggest how can I achieve this JTA transaction using two XAResources.

Please also suggest after all these configuration how to
get JtaTransactionManager instance to initiate the transaction. Currently I
am using Narayana JTA implementation.


private IgniteConfiguration getIgniteConfiguration(IgniteSpringBean ignite) {

  IgniteConfiguration cfg = new IgniteConfiguration();
  cfg.setIgniteInstanceName("springDataNode");
  cfg.setPeerClassLoadingEnabled(false);
  cfg.setRebalanceThreadPoolSize(4);

 * cfg.setTransactionConfiguration(transactionConfiguration());*

  
cfg.setCacheConfiguration(getIPContainerCacheConfiguration(),getIPContainerIPV4CacheConfiguration(),getUserPermissionCacheConfiguration(),getUserAccountCacheConfiguration());
  return cfg;
}


@Bean
public TransactionConfiguration transactionConfiguration(){
  TransactionConfiguration configuration = new TransactionConfiguration();
  Factory factory = new Factory() {
    @Override
    public Object create() {
      return jtaTransactionManager();
    }
  };
  configuration.setTxManagerFactory(factory);
  *configuration.setUseJtaSynchronization(true);*
  return configuration;
}

@Bean
public PlatformTransactionManager jtaTransactionManager() {
  JtaTransactionManager tm = new JtaTransactionManager();
  tm.setTransactionManager(transactionManager());
  return tm;
}

@Bean
public TransactionManager transactionManager() {
  return new TransactionManagerImple();
}


Thanks,
Akash

Reply via email to