Проблемы с: Запись в кэш с мягкой блокировкой истекла из-за основного Ehcache - PullRequest
3 голосов
/ 02 января 2011

Я получаю следующее предупреждение и понятия не имею, что с этим делать. Существует около 80000 записей, которые записывают это предупреждение в файл журнала catalina.out в tomcat каждый раз, когда обновляются bannedIP:

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

Конфигурация для BannedIP в файле ehcache.xml:

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

Любая помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 02 января 2011

У вас возникли проблемы с производительностью или удобством использования в результате этого предупреждения? Если нет, то похоже, что вы должны рассматривать это предупреждение как предупреждение.

В противном случае, похоже, что решение состоит в том, чтобы увеличить размер maxElementsInMemory, чтобы учесть разницу между тем, что кэшируется, и тем, что реально используется.

Надеюсь, это поможет.

2 голосов
/ 03 января 2011

Вы уже убедились, что пакет. BannedIP на самом деле содержит то, что вы ожидаете?

Вы можете программно использовать статистику, чтобы увидеть, что происходит. Учитывая имеющийся у вас бит конфигурации, Ehcache никогда не должен ничего выселять (если у вас менее 80 тыс. Экземпляров BannedIP).

Кроме того, чтобы понять, что означает это сообщение: вы находитесь в процессе обновления экземпляров BannedIP, но когда происходит фиксация, SoftLock, который Hibernate установил, чтобы отметить эту запись, находится в процессе обновлено, выселено по какой-то причине ... Интересно, почему эти обновления так долго?

Кроме того, хотя я просто размышляю вслух, может ли это быть какой-то другой процесс (массовое обновление), который делает недействительной всю область кэша?

...