我在Hibernate 4.3.6中使用Infinispan 6.0.0。infinispan休眠緩存驅逐
我的配置是:
<!-- Default configuration is appropriate for entity/collection caching. -->
<namedCache name="entity">
<clustering mode="invalidation">
<stateTransfer fetchInMemoryState="false" timeout="20000"/>
<sync replTimeout="20000"/>
</clustering>
<locking isolationLevel="READ_COMMITTED" concurrencyLevel="1000"
lockAcquisitionTimeout="15000" useLockStriping="false"/>
<!-- Eviction configuration. WakeupInterval defines how often the eviction thread runs, in milliseconds.
0 means the eviction thread will never run. A separate executor is used for eviction in each cache. -->
<eviction maxEntries="${infinispan.maxEntries:10000}" strategy="LRU"/>
<expiration maxIdle="${infinispan.maxIdle:-1}" wakeUpInterval="5000"/>
<!-- <transaction transactionMode="TRANSACTIONAL" autoCommit="false"
lockingMode="OPTIMISTIC"/> -->
</namedCache>
的系統屬性未設定的,所以默認值應用於(10.000,-1)。
據我所知,當maxEntries沒有達到時,驅逐不應該發生。
對於我的一些實體來說,緩存條目在添加到緩存後很快就會被刪除。添加只是一個查詢,它返回這些對象的很多(< 1000)。這些對象沒有改變(所以不應該發生失效)。
那麼,什麼導致infinispan從緩存中刪除對象?
謝謝