Infinispan - Hot Rod 客户端 API 上的事务管理器

Posted

技术标签:

【中文标题】Infinispan - Hot Rod 客户端 API 上的事务管理器【英文标题】:Infinispan - Transaction Manager over Hot Rod Client API 【发布时间】:2022-01-04 05:13:45 【问题描述】:

我在 hot rod 客户端上使用 infinispan 12.0.2 FINAL 但我无法让事务管理器工作。

这是我配置缓存的方式:

ConfigurationBuilder builder = new ConfigurationBuilder();
    builder.clustering().cacheMode(CacheMode.DIST_SYNC);
    builder.locking().isolationLevel(IsolationLevel.REPEATABLE_READ);
    builder.transaction().lockingMode(LockingMode.PESSIMISTIC);
    builder.transaction().transactionMode(org.infinispan.transaction.TransactionMode.TRANSACTIONAL);
    builder.transaction().transactionManagerLookup(org.infinispan.client.hotrod.transaction.lookup.GenericTransactionManagerLookup.getInstance());          
rcm.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache(cacheName,
                builder.build());       

但每次我尝试通过 remoteCachne.getTransactionManager 访问事务时,我都会得到事务管理器的空值。 我无法弄清楚这个问题。请帮忙。

【问题讨论】:

【参考方案1】:

在服务器缓存中启用事务后,您还需要在远程缓存中启用事务。

查看Hot Rod Documentation如何操作。

【讨论】:

是的,即使在这样做之后,我也发现缓存不是事务性的。 你有复制器吗? 看起来 LockObtainFailedException 来自 Lucene,不幸的是,我以前从未使用过 Lucene :( Infinispan 锁配置不会影响 Lucene 锁。

以上是关于Infinispan - Hot Rod 客户端 API 上的事务管理器的主要内容,如果未能解决你的问题,请参考以下文章

在 Wildfly 10.1 中禁用 Infinispan 集群

用rod获取百度搜索结果的例子

用rod获取百度搜索结果的例子

Infinispan 初始状态传输超时

infinispan 中的 ISPN000313 错误

Infinispan - 没有删除缓存的选项吗?