1

誰かが私を助けてくれることを願っています。A と B の 2 つのホストのクラスターをセットアップしました。ハートビートが両端で受信されていることがわかります。したがって、ネットワークとマルチキャストが機能していると確信しています。問題は、ホスト A のキャッシュに要素を入れることです。ホスト B のログで、リモート プットを受け取ることがわかります。しかし、ホスト B から同じ要素を要求すると、データベースに流れ込み、それでもクエリを実行します。これの原因は何ですか?ご指摘ありがとうございます。

4

2 に答える 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 に答える