誰かが私を助けてくれることを願っています。A と B の 2 つのホストのクラスターをセットアップしました。ハートビートが両端で受信されていることがわかります。したがって、ネットワークとマルチキャストが機能していると確信しています。問題は、ホスト A のキャッシュに要素を入れることです。ホスト B のログで、リモート プットを受け取ることがわかります。しかし、ホスト B から同じ要素を要求すると、データベースに流れ込み、それでもクエリを実行します。これの原因は何ですか?ご指摘ありがとうございます。
2 に答える
0
Hibernate と Ehcache を二次キャッシュとして使用していますか? それともDB上のキャッシュですか?
于 2010-03-19T00:09:06.153 に答える
0
あなたの説明に基づいて、マルチキャスト自動ピア検出を使用して RMI モードで ehcache を実行しています。Cache Event 通知も機能しているようです。これは私の推測です:
設定の有効期限設定によっては、ホスト B から「取得」したときに要素が期限切れになっている可能性があります。
ドキュメントhttp://ehcache.org/documentation/storage_options.htmlの Memory Use, Spooling and Expiry Strategy の下:
要素に get または getQuiet がある場合、有効期限がチェックされます。期限切れの場合は削除され、null が返されます。
設定ファイルを見て、eternal、timeToIdleSeconds、および timeToLiveSeconds の値を確認してください。
<cache name="sampleDistributedCache2"
maxElementsInMemory="10"
eternal="false"
timeToIdleSeconds="100"
timeToLiveSeconds="100"
overflowToDisk="false"></cache>
于 2010-03-19T00:38:18.380 に答える