加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长百科 > 正文

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

发布时间:2021-01-18 17:47:06 所属栏目:站长百科 来源:网络整理
导读:我正在运行Oracle coherence集群并使用扩展客户端连接到集群. 如果有多个扩展客户端继续加入和离开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);
        }
    }
}

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读