Pergunta

Como definir limitação do tamanho do cache L1 ou L2. Preocupação de aumentar o tamanho do cache. Uma maneira é definir o tempo limite para o cache, mas quero saber que é possível fazer uma restrição para o tamanho do cache ou não?

Rgds Navid

Foi útil?

Solução

Como definir limitação do tamanho do cache L1

Você não pode. A única opção é clear O contexto de persistência manualmente em intervalos regulares, se você quiser "controlar" (na verdade, clear é muito agressivo, ele remove todas as entidades) seu tamanho.

Como definir limitação do tamanho do cache L2

Isso depende do provedor de cache subjacente. Em outras palavras, isso é feito configurando a implementação do cache L2. Por exemplo, o ehcache tem um maxElementInMemory parâmetro.


O que acontece em L1?! Quanta entidade estará na memória com o passar do tempo? sem restrições?!

Por mais que você coloque nele, até um eventual OutOfMemoryError, daí a necessidade de clear explicitamente:

  • em grandes trabalhos em lote (mesmo que ocorram em uma única transação)
  • Se uma vida longa EntityManager é usado

Mas o padrão usual é usar uma vida curta EntityManager E a maioria dos casos de uso não são trabalhos em lote, então isso não é uma preocupação.

Veja também

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top