EntityManager(JPA)L1またはL2キャッシュサイズの制限を設定する方法
-
25-09-2019 - |
質問
L1またはL2キャッシュのサイズ - 拡張を設定する方法。キャッシュサイズを増やすことに関心があります。 1つの方法は、キャッシュのタイムアウトを定義することですが、キャッシュサイズの制約を作成できるかどうかを知りたいですか?
rgds navid
解決
L1キャッシュサイズの拡大を設定する方法
できません。唯一のオプションは次のとおりです clear
「制御」したい場合は、定期的な間隔で手動で持続性コンテキストを手動で文書化します(実際、 clear
非常に攻撃的で、削除します すべてのエンティティ) その大きさ。
L2キャッシュサイズの拡大を設定する方法
これは、基礎となるキャッシュプロバイダーに依存します。つまり、これはL2キャッシュの実装を構成することによって行われます。たとえば、ehcacheにはaがあります maxElementInMemory
パラメーター。
L1はどうなりますか?!時間が経つにつれて、どのくらいのエンティティがメモリに含まれますか?制約なし?!
あなたがそれに入れたのと同じくらい、最終的になるまで OutOfMemoryError
, 、したがって、そうする必要があります clear
明示的に:
- 大規模なバッチジョブ(単一のトランザクションで発生した場合でも)
- 長寿命の場合
EntityManager
使用されている
しかし、通常のパターンは、短命を使用することです EntityManager
そして、ほとんどのユースケースはバッチジョブではないため、これは懸念事項ではありません。
参照してください
- JPAウィキブック
所属していません StackOverflow