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