2013-01-03 1 views
0

: : 나는 EJB 컨테이너는 엔티티 빈을 관리하는 방법을 이해하려고 노력하고 EJB weblogic.ejb20.cache.CacheFullException문제 해결 EJB의 cachefull 예외 질문을 참조

는, 그 생성/finder 메소드는 빈 인스턴스의 인 EJBHome 객체 결과에 호출 알고 캐시에로드되고 있지만 콩이 캐시에로드되는 다른 작업/구성이 있습니다 (예 : 컨테이너 관리 관계)?

또한 웹 로직 콘솔에서 매우 높은 캐시 액세스 수 (수백만)를 볼 수 있습니다. 어떻게 이러한 값을 코드로 추적합니까?

은 내가 최대 콩 -에 - 캐시는 8000

답변

1

이 링크는 조금 설명하지만 난 당신이 이미주의이 http://docs.oracle.com/cd/E11035_01/wls100/perform/EJBTuning.html#wp1143320

것은 알고있을 것입니다로 설정 한 각 엔티티 빈의지도에 하나의 레코드가 데이터베이스에 저장되므로 8000의 max-beans-in-cache를 사용하면 최대 8000 개의 레코드를 저장할 수 있습니다. 선택한 동시성 전략에 따라 캐시가 동일한 기본 키를 가진 여러 ejb 인스턴스를 저장할 수 있기 때문에 8000 개 미만의 고유 레코드를 가질 수도 있습니다.

코드 포인트에서 볼 때 ejbActivate()를 호출하면 캐시의 기존 빈을 사용하거나 풀의 빈을 캐시에 넣을 수 있다고 생각합니다. 따라서 ejbactivate에서 몇 가지 로깅 방법을 시도하여 액세스 횟수를 계산할 수 있습니다. 나는 이것에 관해 확실하지 않다.

캐시 접근 횟수가 수백만이지만 캐시 히트와 미스 카운트는 어떨까요? 캐시 조회수가 캐시 값으로 8000으로 충분합니까?