/** * */ package org.alfresco.repo.avm.hibernate; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.engine.EntityKey; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** * @author britt */ public class SessionCacheChecker extends HibernateDaoSupport { public static SessionCacheChecker instance = null; private static Log fgLogger = LogFactory.getLog(SessionCacheChecker.class); private int fCount = 0; public SessionCacheChecker() { instance = this; } public void check() { if (!fgLogger.isDebugEnabled()) { return; } if (fCount % 1000 == 0) { Map types = new HashMap(); Set keys = (Set)getSession().getStatistics().getEntityKeys(); if (keys.size() > 200) { for (EntityKey key : keys) { String name = key.getEntityName(); if (!types.containsKey(name)) { types.put(name, 0); } types.put(name, types.get(name) + 1); } fgLogger.debug(types); // for (Object it : Thread.currentThread().getStackTrace()) // { // fgLogger.debug(it); // } // fCount = 0; } } fCount++; } }