2010-12-07 46 views
2

我有一个应用程序(用CSharp编写),当前连接到一个连贯集群。这个集群以数据形式提供,当应用程序在集群的缓存中看到它时,它会使用它获得有关它传递的更多信息,然后将其传回到集群,然后将集群存储在其第二个高速缓存中。如何从单个应用程序连接到多个Oracle Coherence缓存?

我现在想要做的是将应用程序连接到第二个一致性集群,并且当它看到此集群的缓存中的某些数据时,它应该再次获取此数据并在其上找到更多信息,然后将其传递回此处集群再次将这些数据存储在二级缓存中。

我的问题是我如何配置我的应用程序连接到两个缓存?

我已经做了一些解读这个问题的相互冲突的解答。一个建议是更改在运行时使用的类加载器,但我不知道如何做到这一点,或者如果这是正确的/最好的事情?

任何有关这个问题的帮助或指导将不胜感激。

编辑:更多挖掘后,我发现这个解释,没有人有任何想法是否这是正确的事情吗?

http://forums.oracle.com/forums/thread.jspa?threadID=1518273

回答

1

寻找这个更详细后它会出现该解决方案在上面的链接建议是需要什么。您需要以扩展客户端的身份连接到每个群集(因为您只能成为一个群集的成员,而不必执行一些更改类加载器的巧妙/麻烦的事情),然后添加一些额外的配置以指定另一个群集和缓存配置。一个例子是如下:

<?xml version='1.0'?> 
<cache-config> 
    <caching-scheme-mapping> 
    <cache-mapping> 
     <cache-name>Cache_for_C1</cache-name> 
     <scheme-name>extend-cache-C1</scheme-name> 
    </cache-mapping> 
    <cache-mapping> 
     <cache-name>Cache_for_C2</cache-name> 
     <scheme-name>extend-cache-C2</scheme-name> 
    </cache-mapping> 
    </caching-scheme-mapping> 
    <caching-schemes> 
    <remote-cache-scheme> 
     <scheme-name>extend-cache-C1</scheme-name> 
     <initiator-config> 
     <tcp-initiator> 
      <remote-addresses> 
      <socket-address> 
       <address>C1host</address> 
       <port>30200</port> 
      </socket-address> 
      </remote-addresses> 
     </tcp-initiator> 
     </initiator-config> 
    </remote-cache-scheme> 
    <remote-cache-scheme> 
     <scheme-name>extend-cache-C2</scheme-name> 
     <initiator-config> 
     <tcp-initiator> 
      <remote-addresses> 
      <socket-address> 
       <address>C2host</address> 
       <port>30200</port> 
      </socket-address> 
      </remote-addresses> 
     </tcp-initiator> 
     </initiator-config> 
    </remote-cache-scheme> 
    </caching-schemes> 
</cache-config> 

希望这会帮助别人喜欢它帮助我:)

相关问题