5

嗨,我是 Oracle 连贯性的新手,

问题 1:我的场景是,我必须在我的 web 应用程序中实现 oracle coherence 复制缓存。(使用 weblogic 服务器)。一致性应该是 weblogic 服务器的一部分,这意味着当我启动 weblogic 服务器时,一致性应该启动(两者都应该在单个JVM中运行)。请帮助我怎么做?

问题 2:我是否需要一个数据库来维护记录或它在文件系统中自行维护的 oracle 一致性?如果是意味着当我关闭服务器时缓存数据将如何以及会发生什么?

4

2 回答 2

2

Q1:

我将分几个步骤来描述它:

  1. 放在coherence.jar类路径中。根据具体情况,它可以是 WLS 类路径或应用程序的类路径。除非您想在许多应用程序之间共享一致性节点,否则将其放在应用程序的类路径中通常是一个更好的主意。它还具有其他优点,例如更易于维护。
  2. 为复制的拓扑准备您自己的缓存配置。如果您想使用coherence-cache-config.xml包含复制拓扑的 coherence 默认缓存配置,则可以跳过此步骤,但请记住,您的缓存名称必须以开头,repl-通常不建议将其用于生产。否则将以下内容放入您的custom-cache-config.xml文件并将其添加到应用程序的类路径中。

    <?xml 版本="1.0"?>
    
    <缓存配置 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
       连贯缓存配置.xsd">
    
       <缓存方案映射>
          <缓存映射>
             <cache-name>我的repl-cache</cache-name>
             <scheme-name>复制</scheme-name>
          </缓存映射>
       </缓存方案映射>
    
       <缓存方案>
          <复制方案>
             <scheme-name>复制</scheme-name>
             <backing-map-scheme>
                <本地方案/>
             </backing-map-scheme>
             <autostart>真</autostart>
          </复制方案>
       </缓存方案>
    </缓存配置>
    
  3. 为您的应用程序创建一个ContextListener并将以下代码放入contextInitialized方法中:

    // join existing cluster or form a new one
    CacheFactory.ensureCluster();
    
  4. 使用以下选项启动 WLS:

    -Dtangosol.coherence.cacheconfig=custom-cache-config.xml
    
  5. 部署并启动您的应用程序(可能在许多服务器上)

Q2:

通常,一致性存在于内存解决方案中,默认情况下不会持久化数据。如果您需要管理持久存储中的数据,可以查看CacheStore接口。这文档中进行了描述。

请记住,集群中通常有多个一致性节点,因此当您关闭其中一个节点时不会丢失数据,因为数据也始终存储在其他 JVM 中。当您重新启动节点时,它将加入集群并且您的数据将在那里。

于 2011-11-17T09:09:34.380 回答
1

从 WebLogic 12.1.2 开始,除了 WebLogic 的 ActiveCache 功能外,还通过 WebLogic 的“Coherence Containers”功能实现了出色的 Coherence 集成。这是容器功能的 URL:http: //docs.oracle.com/middleware/1212/wls/WLCOH/deploy-wls-coherence.htm

为了全面披露,我在 Oracle 工作。这篇文章中表达的观点和观点是我自己的,并不一定反映我雇主的观点或观点。

于 2014-02-14T17:09:48.963 回答