嗨,我是oracle相干的新手,

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

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

最佳答案

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>
    
  • Create a ContextListener for your application and place the following code into contextInitialized method:

    // join existing cluster or form a new one
    CacheFactory.ensureCluster();
    
  • 使用以下选项启动WLS:
    -Dtangosol.coherence.cacheconfig=custom-cache-config.xml
    
  • 部署并启动您的应用程序(可能在许多服务器上)

  • Q2:

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

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

    关于oracle-coherence - Oracle与weblogic服务器的一致性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8162918/

    10-11 20:45