我们可以测试对象在Oracle Coherence中的存在吗?

时间:2013-02-05 12:27:00

标签: java oracle caching oracle-coherence

我有一个要求,我需要创建一个第三方应用程序,它将测试任何对象在Oracle Coherence中的存在。

场景:我们的主应用程序使用Oracle Coherence存储一些数据,现在我必须创建一个单独的应用程序(将在不同的服务器上运行 - 在一致性集群节点之外)。该特定应用将检测某个特定对象是否存在于一致性中。我们也没有计划在这台机器上保持连贯性。 任何第三方应用程序(不属于一致性集群)是否可以连接到一致性和获取数据?如果是,那怎么样?我能得到一些指导吗?

2 个答案:

答案 0 :(得分:2)

有多种方法可以做到。

1)使用Coherence Extend - 这允许任何应用程序与Coherence交互而不属于Coherence Cluster。 请参阅http://docs.oracle.com/cd/E14526_01/coh.350/e14509/configextend.htm

仅当第三方应用程序使用Java,.Net或C ++时,才支持此选项 http://coherence.oracle.com/display/COH35UG/Coherence+Extend#CoherenceExtend-Typesofclients

2)使用REST API - Coherence的新版本/最新版本使用REST API公开缓存数据管理。请参阅http://docs.oracle.com/cd/E24290_01/coh.371/e22839/rest_intro.htm

此选项对客户端/第三方技术没有任何限制,因为它基于HTTP上的XML / JSON。

使用REST,您可以检查缓存密钥的存在,如下所示。

获取操作

获取http:// {host}:{port} / cacheName / key

根据键从缓存中返回单个对象。如果具有指定键的对象不存在,则返回404(未找到)消息。

答案 1 :(得分:1)

我在一段时间后使用C ++ API创建了这样一个工具。

https://github.com/actsasflinn/coherence-tool

我还将C ++ API包装在Ruby绑定中以用于脚本编写。

https://github.com/actsasflinn/ruby-coherence

其中任何一个都可以在群集外部独立运行,并依赖于与群集通信的TCP代理方法。