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 上的事务管理器的主要内容,如果未能解决你的问题,请参考以下文章