2012-09-07 3 views
0

최대 절전 모드 캐시 설정이 원인인지 확인하기 위해 힙 덤프를 분석하려고합니다.개체 쿼리 언어 리퍼러

해당 오브젝트의 많은 인스턴스는 "org.hibernate.internal.util.collections.IdentityMap"에 의해 참조됩니다. 최대 절전 모드로 참조되는 개체의 정확한 인스턴스 수를 반환하기 위해 OQL 쿼리를 구성하려면 어떻게해야합니까?

답변

0

당신이 운이 좋은 경우에, 당신은, 일이 같은 시도 dominatorof() 기능을 얻을 수 있습니다 :

SELECT * FROM ".*" o WHERE classof(dominatorof(o))[email protected]("class org.hibernate.internal.util.collections.IdentityMap") 

을하지만이 MAT가 힙에있는 모든 객체를 통해 갈 수 있도록, 그래서 그것은 걸릴 것입니다 결과를 반환하는 데 오랜 시간 (합리적으로 큰 힙이 있다고 가정). 그러나 실제 문제는 dominatorof() 함수가 일관성이 없기 때문에 모든 객체를 찾을 수 없다는 것입니다. 수업 목록이있는 경우 검색어 속도를 높이고 올바른 지배자를 확보하고 있는지 확인할 수 있습니다. 예를 들어, X와 Y가 클래스 이름 인 경우 ". *"대신 정규식으로 "X | Y"를 사용할 수 있으며이 쿼리를 실행하여 얻은 결과를 볼 수 있습니다.

SELECT dominatorof(o) FROM "X|Y" o