【问题标题】:Problems with: A soft-locked cache entry was expired by the underlying Ehcache问题:软锁定缓存条目已被底层 Ehcache 过期
【发布时间】:2011-06-02 09:26:37
【问题描述】:

我收到以下警告,但我不知道该怎么办。每次禁用 IP 更新时,大约有 80000 个条目将此警告写入 tomcat 中的 catalina.out 日志文件:

WARNING: Cache package.BannedIP Key package.BannedIP#73121 Lockable : null
A soft-locked cache entry was expired by the underlying Ehcache. If this happens regularly   you should consider increasing the cache timeouts and/or capacity limits
Dec 16, 2010 10:00:53 PM net.sf.ehcache.hibernate.strategy.AbstractReadWriteEhcacheAccessStrategy handleLockExpiry

ehcache.xml 文件中 BannedIP 的配置:

    <cache name="package.BannedIP"
       maxElementsInMemory="80000"
       eternal="true"
       overflowToDisk="true"
       diskPersistent="true" />

任何帮助将不胜感激。

【问题讨论】:

    标签: java hibernate caching ehcache second-level-cache


    【解决方案1】:

    您是否因为此警告而遇到任何性能或可用性问题?如果不是,那么您似乎应该将此警告视为:警告。

    否则,解决方案似乎是增加maxElementsInMemory 的大小,以解决缓存内容与实际使用内容的差异。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您是否确定 package.BannedIP 实际上包含您所期望的内容?

      您可以以编程方式使用统计信息来查看发生了什么。鉴于您在那里的配置位,Ehcache 永远不应该驱逐任何东西(只要您的 BannedIP 实例少于 80k)。

      另外,要清楚该消息的含义:您正在更新 BannedIP 实例,但是当提交发生时,Hibernate 为标记此条目而设置的 SoftLock 正在处理中更新了,由于某种原因被驱逐了……我想知道为什么这些更新需要这么长时间?

      另外,虽然我只是在大声思考,是否有其他进程(批量更新)使整个缓存区域无效?

      【讨论】:

        猜你喜欢
        • 2011-08-06
        • 1970-01-01
        • 2017-03-16
        • 2013-09-16
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        • 2018-10-26
        • 2016-04-23
        相关资源
        最近更新 更多