嗨,我是oracle coherence的新手,
问题1:我的方案是,我必须在我的webapplication中实现oracle coherence复制缓存。(使用weblogic服务器)。一致性应该是weblogic服务器的一部分意味着当我启动weblogic服务器时应该开始一致性 (两者都应该在单个JVM中运行)。请帮我怎么做?
问题2:我是否需要一个数据库来维护文件系统中自己维护的记录或oracle一致性?如果是,则表示当我关闭服务器时缓存数据将如何以及将会发生什么?
答案 0 :(得分:2)
Q1:
我会用几个步骤来描述它:
coherence.jar
放在类路径中。根据具体情况,它可以是WLS类路径或应用程序的类路径。除非您想在许多应用程序之间共享一致性节点,否则通常最好将它放到应用程序的类路径中。它还具有其他优点,如更容易维护。 为复制的拓扑准备自己的缓存配置。如果你想使用的一致性默认的缓存配置coherence-cache-config.xml
,其中包括复制拓扑,但请记住,你的缓存名称必须以repl-
,这是一般不建议在生产开始你可以跳过这一步。否则,请将以下内容添加到custom-cache-config.xml
文件中,并将其添加到应用程序的类路径中。
<?xml version="1.0"?> <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd"> <caching-scheme-mapping> <cache-mapping> <cache-name>my-repl-cache</cache-name> <scheme-name>replicated</scheme-name> </cache-mapping> </caching-scheme-mapping> <caching-schemes> <replicated-scheme> <scheme-name>replicated</scheme-name> <backing-map-scheme> <local-scheme/> </backing-map-scheme> <autostart>true</autostart> </replicated-scheme> </caching-schemes> </cache-config>
为您的应用创建ContextListener
,并将以下代码放入contextInitialized
方法中:
// join existing cluster or form a new one
CacheFactory.ensureCluster();
使用以下选项启动WLS:
-Dtangosol.coherence.cacheconfig=custom-cache-config.xml
部署并启动您的应用程序(可能在许多服务器上)
Q2:
一般来说,一致性是在内存解决方案中,默认情况下不会保留数据。如果您需要管理持久存储中的数据,可以查看CacheStore接口。这在文档中描述为here。
请记住,群集中通常有多个一致性节点,因此在关闭其中一个节点时不会丢失数据,因为数据总是存储在其他JVM中。当您重新启动节点时,它将加入群集,您的数据将在那里。
答案 1 :(得分:1)
从WebLogic 12.1.2开始,除了WebLogic的ActiveCache功能外,还通过WebLogic的“Coherence Containers”功能实现了出色的Coherence集成。以下是容器功能的网址:http://docs.oracle.com/middleware/1212/wls/WLCOH/deploy-wls-coherence.htm
为了充分披露,我在Oracle工作。本文中表达的观点和观点是我自己的,不一定反映我的雇主的意见或观点。