Как установить ограничение в Entitishanager (JPA) размер кэша L1 или L2

StackOverflow https://stackoverflow.com/questions/4005917

Вопрос

Как установить ограничение размера кэша L1 или L2. Я заботимся увеличением размера кэша. Один из способов определяет тайм-аут для кеша, но я хочу знать, возможно ли сделать ограничение для размера кэша или нет?

RGDS Navid

Это было полезно?

Решение

Как установить ограничение размера кэша L1

Вы не можете. Единственный вариант должен clear контекст настойчивости вручную через регулярные промежутки времени, если вы хотите «контролировать» (на самом деле, clear очень агрессивен, это удаляет Все объекты) его размер.

Как установить ограничение размера кеша L2

Это зависит от базового провайдера кэша. Другими словами, это делается путем настройки реализации кеша L2. Например, имеет Ehcache maxElementInMemory параметр.


Что происходит в L1?! Сколько сущностей будут в памяти как проход времени? с любыми ограничениями?!

Столько, сколько вы ввели в него, до возможных OutOfMemoryError, следовательно, необходимость clear явно:

  • на больших пакетных заданиях (даже если они возникают в одной транзакции)
  • Если долговечный EntityManager используется

Но обычный шаблон - использовать недолговечный EntityManager И большинство случаев использования не являются пакетными работами, поэтому это не проблема.

Смотрите также

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top