複数のOracle Coherenceクラスタがあり、各クラスタには同じキャッシュ名を持つ同じキャッシュ・セットがあります。アプリケーション内の各クラスターから単一のキャッシュ (「Cache1」など) にアクセスするにはどうすればよいですか? たとえば、すべての環境で「Cache1」の数を確認して、ユーザーに表示したい場合があります。
クラスタはCoherence Extendを使用してセットアップされ、クラスタごとに個別のキャッシュ マッピングとリモート キャッシュ スキームを使用してクライアント側のキャッシュ構成をセットアップしました。ただし、各クラスターの cache-name 要素を「Cache1」に設定すると、xml にリストされている最初のクラスターからのみデータが取得されます。それを別のもの (例: "Cache1-Dev1") に設定すると、「キャッシュのスキームがありません: "Cache1-Dev1"」というメッセージとともに Tangosol.IO.Pof.PortableException が発生します。
<cache-config xmlns="http://schemas.tangosol.com/cache">
<caching-scheme-mapping>
<cache-mapping>
<cache-name>Cache1-Dev1</cache-name>
<scheme-name>extend-direct-dev1</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>Cache1-Dev2</cache-name>
<scheme-name>extend-direct-dev2</scheme-name>
</cache-mapping>
</cache-scheme-mapping>
<caching-schemes>
<remote-cache-scheme>
<scheme-name>extend-direct-dev1</scheme-name>
<service-name>ExtendTcpCacheService-dev1</service-name>
<initiator-config>
<tcp-initiator>
<remote-addresses>
<socket-address>
<address>dev1-address</address>
<port>9500</port>
</socket-address>
</remote-addresses>
</tcp-initiator>
<outgoing-message-handler>
<request-timeout>60s</request-timeout>
</outgoing-message-handler>
</initiator-config>
</remote-cache-scheme>
<remote-cache-scheme>
<scheme-name>extend-direct-dev2</scheme-name>
<service-name>ExtendTcpCacheService-dev2</service-name>
<initiator-config>
<tcp-initiator>
<remote-addresses>
<socket-address>
<address>dev2-address</address>
<port>9500</port>
</socket-address>
</remote-addresses>
</tcp-initiator>
<outgoing-message-handler>
<request-timeout>60s</request-timeout>
</outgoing-message-handler>
</initiator-config>
</remote-cache-scheme>
</cache-config>