2010-12-07 21 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> 

希望這會幫助別人喜歡它幫助我:)

相關問題