如何获取Oracle Coherence群集中的所有缓存名称?

我正在运行Oracle coherence集群并使用扩展客户端连接到集群.

如果有多个扩展客户端继续加入和离开oracle coherence集群,则有可能一个服务创建了一些缓存并离开了集群,但这些缓存存在于集群中.

我希望在任何时间点都可以在群集中显示所有缓存名称.

是否可以获取所有缓存名称?

cacheService中有一个名为getCacheNames的API,它返回与该服务对应的所有缓存名称.

但是,如何获取属于客户端的其他服务创建的缓存名称,这些服务不再是活动但缓存存在于群集中?

[更新]: –
有一个名为’maps’的命令,它给出服务器中存在的所有缓存(由所有客户端创建).但我无法找到任何APi进行相同的操作.

是否有任何API可以执行maps命令或任何直接使用JAVA代码执行此命令的方法.

解决方法

迟到总比不到好…

这是一个粗略的例子,如果你想在生产中使用它需要一点整理…

Enumeration serviceNames = CacheFactory.getCluster().getServiceNames();
while(serviceNames.hasMoreElements()){
    String serviceName = (String)serviceNames.nextElement();
    Service service = null;
    try{
        service = CacheFactory.getService(serviceName);
    }catch(Exception e){
        continue;
    }
    if(service instanceof CacheService){
        CacheService cacheService = (CacheService)service;
        Enumeration cacheNames = cacheService.getCacheNames();
        while(cacheNames.hasMoreElements()){
            String cacheName = (String)cacheNames.nextElement();
            System.out.println("<<<" + cacheName);
        }
    }
}

dawei

【声明】:嘉兴站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。