2015-09-19 36 views
1

我正在寻找一种以编程方式检索所有区域并返回计数/大小的方法。我可以看到gfsh如何具有“列表区域”,但似乎无法找到支持java api命令。我试过作为客户端缓存检索所有区域

cache = ClientCacheFactory().addPoolLocator().create(); 
RegionService regionService = 
clientCache.createAuthenticatedView(properties); 

但生成的regionService.rootRegions为空。我可以得到查询服务,并运行“从/ UserRegion选择计数(*)”,但想要动态检索区域。

+0

您是否试图检索服务器上的区域? – dturanski

+0

是的,区域存在于服务器上,我通过定位器与客户端缓存连接。 –

回答

1

使用MBean的另一种方法是执行远程功能,像this

+0

听起来像这是最好的选择,如果我想尽量减少定位器和jmx的连接设置。谢谢! –

0

您可以通过JMX客户端获取区域的通过了GemFire管理服务列表。

MemberMXBean mbeanProxy = 
    (MemberMXBean) MBeanServerInvocationHandler.newProxyInstance(
    mbeanServerConnection, mbeanName, MemberMXBean.class, true); 
String[] listRegions = mbeanProxy.listRegions(); 
for (int i = 0; i < listRegions.length; i++) { 
    System.out.println(listRegions[i]); 
} 
+0

什么是适当的mbeanName(ObjectName)在这里? – m52509791