首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略Ignite Factory<TransactionManager>

忽略Ignite Factory<TransactionManager>
EN

Stack Overflow用户
提问于 2021-02-05 22:44:31
回答 1查看 30关注 0票数 0

我正在尝试为Ignite Cache设置外部事务管理器,但是它发现Factory被忽略,create也没有被调用...工厂实现是:

代码语言:javascript
复制
public class TransactionManagerFactory implements Factory<TransactionManager> {
private static final long serialVersionUID = 1L;
private transient IgniteCache igniteCache;

public TransactionManagerFactory(IgniteCache igniteCache) {
    this.igniteCache=igniteCache;
}

@Override
public TransactionManager create() {
    return this.igniteCache.getTransactionManager();
}
}

设置的Ignite事务客户端配置如下:

代码语言:javascript
复制
TransactionConfiguration txConfiguration=new TransactionConfiguration();
txConfiguration.setDeadlockTimeout(acquireTimeout);
txConfiguration.setDefaultTxIsolation(TransactionIsolation.READ_COMMITTED);
txConfiguration.setDefaultTxConcurrency(TransactionConcurrency.PESSIMISTIC);
TransactionManagerFactory txFactory=new TransactionManagerFactory(this);
txConfiguration.setTxManagerFactory(txFactory);           
this.clientConfig.setTransactionConfiguration(txConfiguration); 

缓存的创建方式为:

代码语言:javascript
复制
CacheConfiguration<Object, Object> cacheCfg = new CacheConfiguration<Object, Object>(this.name);
cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
cacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
this.cache = this.instance.getOrCreateCache(cacheCfg);

但是,当在测试中创建缓存并连接到远程节点,并且通过调用transactionManager.begin()创建事务时,instance.transactions().tx()返回null,而transactionManager.getTransaction()返回TransactionImpl{xid=Xid{formatId=1,transactionManager.getTransaction status=ACTIVE}

无论何时回滚事务,写入的项都会保存在缓存中。此外,TransactionManagerFactory.create在任何时候都不会执行。

如何正确地将外部事务管理器与ignite缓存集成?

BR玉莲Oifa

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-05 23:31:49

我认为你需要将ignite-jta模块添加到你的项目中,这样Ignite才能使用事务管理器做任何事情。否则,将使用NoOp实现。

我不知道你想用你的瞬态IgniteCache逻辑做什么。反序列化后,它将为空,并且将发生NPE。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66065287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档