开发者

how to set limitation in EntityManager (JPA) L1 or L2 cache size

开发者 https://www.devze.com 2023-01-21 07:02 出处:网络
How to set L1 or L2 cache size-limitation. I concern of increasing the cache-size. One way is defining timeou开发者_如何学Pythont for cache but i want to know is it possible to make a constraint for c

How to set L1 or L2 cache size-limitation. I concern of increasing the cache-size. One way is defining timeou开发者_如何学Pythont for cache but i want to know is it possible to make a constraint for cache size or not?

RGDS Navid


How to set L1 cache size-limitation

You can't. The only option is to clear the persistence context manually at regular intervals if you want to "control" (actually, clear is very aggressive, it removes all entities) its size.

How to set L2 cache size-limitation

This depends on the underlying cache provider. In other words, this is done by configuring the L2 cache implementation. For example, EHCache has a maxElementInMemory parameter.


what happens in L1?! how much entities will be in the memory as time pass? w/o any constrains ?!

As much as you put in it, until an eventual OutOfMemoryError, hence the need to clear explicitly:

  • on large batch jobs (even if they occur in a single transaction)
  • if a long-lived EntityManager is used

But the usual pattern is to use a short-lived EntityManager and most use cases are not batch jobs so this is not a concern.

See also

  • JPA wiki book
    • 2.5 Clear
0

精彩评论

暂无评论...
验证码 换一张
取 消