Index: lams_central/src/java/org/lamsfoundation/lams/web/RuntimeStatsServlet.java =================================================================== diff -u -rc14f973d8ed2daa37f41fc9c75ff0c91ac9b99d1 -rf53bf7195291dc2c87f096afb30e0b2c78ed63fc --- lams_central/src/java/org/lamsfoundation/lams/web/RuntimeStatsServlet.java (.../RuntimeStatsServlet.java) (revision c14f973d8ed2daa37f41fc9c75ff0c91ac9b99d1) +++ lams_central/src/java/org/lamsfoundation/lams/web/RuntimeStatsServlet.java (.../RuntimeStatsServlet.java) (revision f53bf7195291dc2c87f096afb30e0b2c78ed63fc) @@ -37,7 +37,9 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; +import org.hibernate.stat.CacheRegionStatistics; import org.lamsfoundation.lams.util.NumberUtil; +import org.lamsfoundation.lams.util.hibernate.HibernateSessionManager; import org.lamsfoundation.lams.web.session.SessionManager; public class RuntimeStatsServlet extends HttpServlet { @@ -114,24 +116,18 @@ .append(NumberUtil.formatLocalisedNumber(readWriteRatio, (Locale) null, 2)).append("\n\n"); // query cache stats - cacheContainerName = new ObjectName( - "org.wildfly.clustering.infinispan:type=Cache,name=\"default-query-results-region(local)\",manager=\"hibernate\",component=Statistics"); - isAvailable = server.isRegistered(cacheContainerName); - if (isAvailable) { - currentNumberOfEntriesInMemory = (Integer) server.getAttribute(cacheContainerName, - "numberOfEntriesInMemory"); - stats.append("Query cache number of entries in memory: ").append(currentNumberOfEntriesInMemory) - .append("\n"); - hits = (Long) server.getAttribute(cacheContainerName, "hits"); + CacheRegionStatistics queryCacheStatistics = HibernateSessionManager.getStatistics() + .getQueryRegionStatistics("default-query-results-region"); + if (queryCacheStatistics != null) { + stats.append("Query cache number of entries in memory: ") + .append(queryCacheStatistics.getElementCountInMemory()).append("\n"); + hits = queryCacheStatistics.getHitCount(); stats.append("Query cache hits: ").append(hits).append("\n"); - misses = (Long) server.getAttribute(cacheContainerName, "misses"); + misses = queryCacheStatistics.getMissCount(); stats.append("Query cache misses: ").append(misses).append("\n"); - hitRatio = (Double) server.getAttribute(cacheContainerName, "hitRatio"); + hitRatio = hits.doubleValue() / misses; stats.append("Query cache hit ratio: ") .append(NumberUtil.formatLocalisedNumber(hitRatio, (Locale) null, 2)).append("\n"); - readWriteRatio = (Double) server.getAttribute(cacheContainerName, "readWriteRatio"); - stats.append("Query cache read/write ratio: ") - .append(NumberUtil.formatLocalisedNumber(readWriteRatio, (Locale) null, 2)); } } } catch (Exception e) { Index: lams_common/src/java/org/lamsfoundation/lams/applicationContext.xml =================================================================== diff -u -r92252270b8c634b6703f62b79d40d7cf6291da4f -rf53bf7195291dc2c87f096afb30e0b2c78ed63fc --- lams_common/src/java/org/lamsfoundation/lams/applicationContext.xml (.../applicationContext.xml) (revision 92252270b8c634b6703f62b79d40d7cf6291da4f) +++ lams_common/src/java/org/lamsfoundation/lams/applicationContext.xml (.../applicationContext.xml) (revision f53bf7195291dc2c87f096afb30e0b2c78ed63fc) @@ -22,6 +22,7 @@ true ALL true + true Index: lams_common/src/java/org/lamsfoundation/lams/util/hibernate/HibernateSessionManager.java =================================================================== diff -u -r3ecddf4b3b716fbd0c0767f12f524278b8fe455a -rf53bf7195291dc2c87f096afb30e0b2c78ed63fc --- lams_common/src/java/org/lamsfoundation/lams/util/hibernate/HibernateSessionManager.java (.../HibernateSessionManager.java) (revision 3ecddf4b3b716fbd0c0767f12f524278b8fe455a) +++ lams_common/src/java/org/lamsfoundation/lams/util/hibernate/HibernateSessionManager.java (.../HibernateSessionManager.java) (revision f53bf7195291dc2c87f096afb30e0b2c78ed63fc) @@ -3,6 +3,7 @@ import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.context.internal.ManagedSessionContext; +import org.hibernate.stat.Statistics; import org.lamsfoundation.lams.web.session.SessionManager; import org.springframework.orm.hibernate5.SessionHolder; import org.springframework.transaction.support.TransactionSynchronizationManager; @@ -53,6 +54,10 @@ HibernateSessionManager.getSessionFactory().getCurrentSession(); } + public static Statistics getStatistics() { + return HibernateSessionManager.getSessionFactory().getStatistics(); + } + private static SessionFactory getSessionFactory() { if (HibernateSessionManager.sessionFactory == null) { WebApplicationContext wac = WebApplicationContextUtils