You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Hot Rod Client API的Infinispan事务管理器获取为空问题求助

问题根因

你将事务管理器查找逻辑配置在了服务端缓存的ConfigurationBuilder中,但Hot Rod客户端的事务管理器属于客户端侧独立配置项,不会从服务端缓存配置同步,因此调用remoteCache.getTransactionManager()会返回null。

解决方案

1. 调整客户端初始化配置

在Hot Rod客户端的配置类中配置事务相关参数,不要将客户端事务参数配置在服务端缓存配置中:

import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.client.hotrod.transaction.lookup.GenericTransactionManagerLookup;
import org.infinispan.client.hotrod.transaction.TransactionMode;

// 客户端侧配置,不是服务端缓存配置
ConfigurationBuilder clientBuilder = new ConfigurationBuilder();
clientBuilder.addServer().host("你的Infinispan服务地址").port(11222);
// 客户端开启事务支持,配置事务管理器查找类
clientBuilder.transaction()
        .transactionMode(TransactionMode.NON_XA)
        .transactionManagerLookup(GenericTransactionManagerLookup.getInstance());
// 初始化RemoteCacheManager
RemoteCacheManager rcm = new RemoteCacheManager(clientBuilder.build());

2. 修正服务端缓存配置

服务端缓存配置不需要配置transactionManagerLookup,该参数仅对服务端本地缓存生效,对Hot Rod客户端访问无效:

import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.transaction.LockingMode;
import org.infinispan.transaction.TransactionMode;
import org.infinispan.cache.container.CacheContainerAdmin;

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.DIST_SYNC);
builder.locking().isolationLevel(IsolationLevel.REPEATABLE_READ);
builder.transaction().lockingMode(LockingMode.PESSIMISTIC);
builder.transaction().transactionMode(TransactionMode.TRANSACTIONAL);
// 移除原有的transactionManagerLookup配置
rcm.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache(cacheName, builder.build());

3. 获取事务管理器

完成上述配置后,直接调用remoteCache.getTransactionManager()即可获取到正常的事务管理器实例。

注意事项
  • Infinispan 12.0.x版本的Hot Rod客户端仅支持NON_XA事务模式,配置为其他事务模式会导致初始化失败
  • 如果你项目中使用了独立的事务管理器(如Narayana、Spring事务管理器),可替换GenericTransactionManagerLookup为对应实现类即可适配

内容的提问来源于stack exchange,提问作者Raghav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:45:04