2010-03-03 71 views
1

我有這個奇怪的問題,ehcache 2.0,我希望有人可以幫助我。我建立了兩個主機A和B的集羣。我可以看到兩端都收到了心跳,所以我非常肯定網絡和多播的工作正在進行。問題是我將一個元素放入主機A的緩存中,我可以在主機B的日誌中看到它接收到一個遠程存儲。但是,當我從主機B請求相同的元素時,它會跑到數據庫並執行查詢。這可能是什麼原因?感謝任何指針!Ehcache - 分佈式RMI不工作

回答

0

您是否將Hibernate和Ehcache用作二級緩存?或者只是在數據庫上面的緩存?

0

根據您的描述,您正在RMI模式下運行ehcache(帶有多播自動對等點發現功能)。聽起來像緩存事件通知正在工作。這是我的猜測:

根據到期在你的配置設置,元素可能已過期,當你「獲得」從主機B

在本文檔中,http://ehcache.org/documentation/storage_options.html, 下內存使用,繞線機和到期策略:

當元素上有get或getQuiet時,會檢查它是否到期。如果過期,它將被刪除並返回空值。

你可以看看你的配置文件,檢查永恆,timeToIdleSeconds和timeToLiveSeconds的值。

<cache name="sampleDistributedCache2" 
     maxElementsInMemory="10" 
     eternal="false"       
     timeToIdleSeconds="100" 
     timeToLiveSeconds="100" 
     overflowToDisk="false"></cache>