2

異なるクラスターに 2 つのキャッシュがあります。拡張クライアントを介して両方にアクセスしたい。最初のキャッシュ (任意のキャッシュ) には問題なくアクセスできますが、2 番目のキャッシュへのアクセスは失敗します。

例えば:

NamedCache cacheOne= CacheFactory.getCache("Cache-One");
NamedCache cacheTwo= CacheFactory.getCache("Cache-Two");

2 番目の呼び出しは次のように失敗します。

Exception in thread "main" java.lang.IllegalArgumentException: No scheme for cache: "Cache-Two".

クライアント経由で両方のキャッシュにアクセスするにはどうすればよいですか? クライアント構成は以下です。

*

<cache-config>
    <caching-scheme-mapping>
        <cache-mapping>
            <cache-name>Cache-One</cache-name>
            <scheme-name>Scheme-One</scheme-name>
        </cache-mapping>
        <cache-mapping>
            <cache-name>Cache-Two</cache-name>
            <scheme-name>Scheme-Two</scheme-name>
        </cache-mapping>
    </caching-scheme-mapping>
    <caching-schemes>
        <remote-cache-scheme>
            <scheme-name>Scheme-One</scheme-name>
            <service-name>TCPProxyCacheService</service-name>
            <initiator-config>
                <tcp-initiator>
                    <remote-addresses>
                        <socket-address>
                            <address>address of proxy one</address>
                            <port>2077</port>
                        </socket-address>
                    </remote-addresses>
                    <connect-timeout>300s</connect-timeout>
                </tcp-initiator>
                <outgoing-message-handler>
                    <request-timeout>300s</request-timeout>
                </outgoing-message-handler>
            </initiator-config>
        </remote-cache-scheme>
        <remote-cache-scheme> 
              <scheme-name>extend-castle</scheme-name> 
              <service-name>TCPProxyCacheService</service-name> 
              <initiator-config> 
                  <tcp-initiator> 
                     <remote-addresses> 
                               <socket-address> 
                                   <address>address of proxy two</address> 
                                  <port>20088</port> 
                               </socket-address> 
                      </remote-addresses> 
                      <connect-timeout>300s</connect-timeout> 
                   </tcp-initiator> 
                   <outgoing-message-handler> 
                      <request-timeout>300s</request-timeout> 
                   </outgoing-message-handler> 
              </initiator-config> 
        </remote-cache-scheme> 
    </caching-schemes>
</cache-config>

*

4

1 に答える 1

1

スキームが定義されているはずextend-castleの場所で、スキームが定義されました。Scheme-Two2 番目のスキーム名を に変更remote-cache-schemeするScheme-Twoか、2 番目のスキーム名を に変更cache-mappingextend-castleます。

于 2011-12-18T01:18:12.107 に答える