我在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从缓存中删除对象?
谢谢