我正在使用JBoss EAP 6.3应用服务器和JDG 6.3.1(使用Infinispan 6.1.2),两个实例都在同一个虚拟机上运行,连接协议是Hot Rod。
如果由于某种原因无法访问JDG,我希望EAP上的EJB应用程序中使用的Hot Rod客户端捕获HotRodClientException
并直接继续数据库调用。
这工作正常,但RemoteCacheManager中的重试计数设置为10,因此在重试10次后连接最终失败后我需要花费很多时间才能继续。
查看所涉及的类我无法找到配置Hot Rod连接的最大重试次数的方法。我发现唯一的问题是使用ConfigurationBuilder.withProperties(Properties)
,但是提到这是用于从旧版本的Inifinispan迁移,其中属性对象用于配置。
我尝试了以下代码,但它也无法将rety计数设置为1:
Properties jdgProperties = new Properties();
jdgProperties.put("infinispan.client.hotrod.server_list", host + ":" + hotrodPort);
jdgProperties.put("infinispan.client.hotrod.max_retries", "1");
Configuration jdgConfWithProperties = builder.withProperties(jdgProperties).build();
如何将重试次数配置为除默认值10以外的任何值?
答案 0 :(得分:2)
这应该有效:
Configuration configuration = new ConfigurationBuilder().maxRetries(2).build();
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(configuration);