問題タブ [ehcache-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ehcache 2: SelfPopulatingCache の更新が失われました
私は ehache 2 (2.9.0 と 2.10.4 でテスト済み) を使用する必要がありSelfPopulatingCache
ます。overflowToDisk="true"
に設定するとリフレッシュが失われehcache.xml
ます。ハードディスクに書き込まなくても大丈夫です。
出力の最初は常に次のとおりです。
約 50 回の更新後、出力は次のように変わりました。
その理由は、メソッドgetKeys()
のrefresh()
メソッドが空のコレクションを返すためです。
例
java - 分散型 ehcache 更新操作が複製されたキャッシュでどのように機能するか
要件 :
データ プロバイダーからすべてのアカウント グループ メンバーシップの詳細を取得し、関連付けられたグループのリストにアカウントのキャッシュを準備したいと考えています。4000 グループ用のキャッシュを準備する必要があり、API の応答が遅すぎるため、複数のサーバー環境を選択し、データを分散 Ehcache に保存しました。
現在のデザイン:
私は4つのサーバーを持っています
ステップ1:
- サーバー 1 は、グループの数を 4 つの等しい部分に分割します。
- したがって、各サーバーは 1000 グループのデータを取得できます。アカウントとグループの関連付けを保存するための分散型 ehcache も作成します。
- このキャッシュを他の 3 つのサーバーに複製します。(他のサーバーはステップ 1 が完了するまで待機します)
ステップ2 :
- 4 つのサーバーはすべて、データ プロバイダーからデータを取得し、それを分散キャッシュに入れようとしていました。
- サーバーは、同じキーのデータをキャッシュに更新できます。
上記のデザインに疑問があります
- 私の理解によると、各サーバーには独自の複製されたキャッシュのコピーがあるため、キャッシュの要素を更新すると、ローカルの複製されたコピーで更新されますか?
- サーバー1がキャッシュ内の要素を更新した場合、他のサーバーは更新された値をどのように取得しますか?
- 更新されたキャッシュが RMI を介して更新操作ごとにすべてのサーバーに複製される場合、サーバー 1 がキャッシュ内の要素を更新し、この更新が別のサーバーに複製される前に、サーバー 2 も同じ要素を更新するとどうなりますか。
maven - Grails 2.4.5 エラー net.sf.ehcache.CacheException: javax.management.MalformedObjectNameException 無効な文字 ':' プロパティの値部分
Grails 2.4.5 プロジェクト (完全なスタック トレース) を実行すると、以下のエラーが発生します。
エラーの原因がわかりません。「maven clean/package/install」が成功しました。ただし、「grails compile」を実行すると、cache-ehcache プラグインから非推奨の警告 (以下に示すように) が表示されます。これが、このエラーが発生する理由である可能性があると想定していますが、解決方法はわかりません。
そのプラグインの上位バージョンがあるかどうかを確認してみます。これまでのところ、ほとんどの場合、ネクサス ミラー リポジトリに制限されているため、テストするより高いバージョンを見つけることができませんでした。
pom.xml 内にサンプルの依存関係があります
未解決の問題https://github.com/grails-plugins/grails-cache-ehcache/issues/41によると、これはバグである可能性がありますが、解決策や回避策は提供されていません。
私は Grails 2.2.0 から 2.4.5 へのアップグレードを行っています。適切な hibernate4 ehCache クラスを指すように Datasource.groovy を更新しました。
}
config.groovy:
MalformedObjectNameException: Invalid character ':' in value part of property
プロジェクトは ehcache を構成していないため、キャッシュ プラグインのいくつかのクラスを使用しただけなので、それがどこから来ているのかを理解しようとしています。以下はキャッシュ サービスの実装例です。
GrailsEhCacheCache が IntelliJ で認識され ない GrailsCacheManager が IntelliJ で認識されない
更新: createEHcache に使用されるカスタム ユーティリティ メソッド