주석을 바꾸지 않고 최대 절전 모드에서 일부 특정 엔티티의 두 번째 수준 캐시를 비활성화하는 방법

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

문제

특정 비즈니스 이유로 응용 프로그램에서 최대 절전 모드 2 단계 캐시를 사용하고 있습니다. 더 이상 엔티티 주석을 변경할 수 없습니다.

내 프로젝트에서 데이터베이스를 최대 절전 모드에서 변경하는 것 외에도 최대 절전 모드를 통과하지 않는 다른 기본 SQL도 있습니다. 따라서 데이터베이스가 네이티브 SQL에서 업데이트 된 후 최대 절전 모드 2 단계 캐시 데이터가 오래 될 수 있습니다. 그것이 내가 원하는 이유입니다 특정 엔티티의 두 번째 레벨 캐시를 비활성화합니다 (프로그래밍 방식 또는 다른 방식으로 주석 변경하는 것).

미리 감사드립니다!

도움이 되었습니까?

해결책

경고: Jens Schauder가 지적했듯이 MaxelementsInmemory = "0"을 설정하여 0.0 "을 메모리에 저장하도록 Ehcache를 구성하는 것은 불가능합니다. 반대 효과가 발생하므로 캐시의 무제한 크기를 설정합니다. 이 행동은 언급되지 않았습니다 최대 절전 모드 캐싱 페이지이지만 문서화되어 있습니다 캐시 구성 페이지.

문서를 신속하게 검토했지만 아직 대체 접근 방식을 찾지 못했습니다. 이 답변을 혼자 삭제할 수 없습니다. :-(

내 원래 제안 :

2 단계 캐시의 구현 제공 업체를 짧은 TTL 시간으로 구성하거나 특정 엔티티 유형의 0 항목을 저장할 수 있습니다.

예 : ehcache를 사용하는 경우 ehcache.xml에서 구성 할 수 있습니다.

<cache
name="com.problematic.cache.EntityName"
maxElementsInMemory="0" <<== this should effectively disable caching for EntityName
overflowToDisk="false" <<== Do not overflow any entries to disk
/>

보다 최대 절전 모드 캐싱 ehcache 문서에서.

다른 팁

Terracotta 3.1 이상에서는 Terracotta Developer Console을 사용하여 구성 (정적으로) 및 런타임에 모두 지역 당 최대 절전 모드 2 레벨 캐시를 활성화/비활성화 할 수 있습니다.

클러스터 또는 클러스터 전체의 개별 노드에 대한 캐시 및 최대 절전 모드에 대한 실시간 통계를 모니터링 할 수도 있습니다.

테라코타는 오픈 소스입니다. 자세한 내용은 확인하십시오 최대 절전 모드를위한 테라코타.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top