Hazel キャスト 3.3.3 で J キャッシュを使用するクラスター内のすべてのキャッシュを読み取る REST アプリケーションを開発しています。
このアプリケーションで次の行を呼び出すと、別のヘーゼル キャスト ノードが作成されます。
cacheManager= Caching.getCachingProvider().getCacheManager();
ノードは、作成済みのノードでクラスター化されます。しかし、次のコマンドでクラスターのすべてのキャッシュ名を取得しようとすると、空の iterable が返されます。
cacheManager.getCacheNames().iterator()
以下を含む Jcache の Java ドキュメントを調べました。
CacheManager によって管理されるすべてのキャッシュを提供するとは限りません。例: getCache(java.lang.String) または getCache(java.lang.String,java.lang.Class,java.lang.Class) への呼び出しによってアクセスできる内部定義またはプラットフォーム固有のキャッシュが存在しない場合があります。反復で。
しかし、アクセスしようとしているキャッシュは、内部で定義されていないか、プラットフォーム固有ではありません。それらは他のノードによって作成されます。
クラスターに存在するすべての名前を取得する方法が必要です。これに方法はありますか?
注意: アプリケーションでは hazelcast.xml は使用されません。すべてがデフォルトの xml によって初期化されます。
アップデート:
名前がわかればキャッシュにアクセスできます。そして、名前を直接指定して初めてアクセスした後、そのキャッシュがcacheManager.getCacheNames().iterator()