List of usage examples for org.hibernate.stat SecondLevelCacheStatistics getSizeInMemory
long getSizeInMemory();
From source file:com.daphne.es.monitor.web.controller.HibernateCacheMonitorController.java
License:Apache License
private void setMemoryInfo(Model model) { ///*from w ww.j av a 2s.c o m*/ MemoryUsage heapMemoryUsage = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); long usedSystemMemory = heapMemoryUsage.getUsed(); long maxSystemMemory = heapMemoryUsage.getMax(); model.addAttribute("usedSystemMemory", usedSystemMemory); model.addAttribute("maxSystemMemory", maxSystemMemory); // Statistics statistics = (Statistics) model.asMap().get("statistics"); String[] secondLevelCacheRegionNames = statistics.getSecondLevelCacheRegionNames(); int totalMemorySize = 0; int totalMemoryCount = 0; int totalDiskCount = 0; for (String secondLevelCacheRegionName : secondLevelCacheRegionNames) { SecondLevelCacheStatistics secondLevelCacheStatistics = statistics .getSecondLevelCacheStatistics(secondLevelCacheRegionName); totalMemorySize += secondLevelCacheStatistics.getSizeInMemory(); totalMemoryCount += secondLevelCacheStatistics.getElementCountInMemory(); totalDiskCount += secondLevelCacheStatistics.getElementCountOnDisk(); } model.addAttribute("totalMemorySize", totalMemorySize); model.addAttribute("totalMemoryCount", totalMemoryCount); model.addAttribute("totalDiskCount", totalDiskCount); }
From source file:com.francetelecom.clara.cloud.scalability.helper.StatisticsHelper.java
License:Apache License
private static void secondLevelStats(Statistics stats, String name) { logger.info("Second level statistics for " + name); SecondLevelCacheStatistics slStats = stats.getSecondLevelCacheStatistics(name); logger.info(" Elements in memory : " + slStats.getElementCountInMemory()); logger.info(" Element on disk : " + slStats.getElementCountOnDisk()); logger.info(" Entries : " + slStats.getEntries()); logger.info(" Hit count : " + slStats.getHitCount()); logger.info(" Miss count : " + slStats.getMissCount()); logger.info(" Put count : " + slStats.getPutCount()); logger.info(" Memory size : " + slStats.getSizeInMemory()); }
From source file:com.hibernateinstrumentator.jboss.StatisticsService.java
License:Apache License
@Override public Map<String, Object> getSecondLevelCacheStatisticsMap(String regionName) { Map<String, Object> m = null; SecondLevelCacheStatistics slcs = super.getSecondLevelCacheStatistics(regionName); if (slcs != null) { m = new HashMap<String, Object>(); m.put("elementCountInMemory", slcs.getElementCountInMemory()); m.put("elementCountOnDisk", slcs.getElementCountOnDisk()); m.put("entries", slcs.getEntries()); m.put("hitCount", slcs.getHitCount()); m.put("missCount", slcs.getMissCount()); m.put("putCount", slcs.getPutCount()); m.put("sizeInMemory", slcs.getSizeInMemory()); }/* w w w .j ava 2 s. com*/ return m; }
From source file:com.openkm.servlet.admin.HibernateStatsServlet.java
License:Open Source License
/** * View log/*from w ww .ja v a 2 s .com*/ */ private void view(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { log.debug("view({}, {})", request, response); refresh(); // Query Statistics List<Map<String, String>> qStats = new ArrayList<Map<String, String>>(); for (String query : queryStatistics.keySet()) { QueryStatistics queryStats = queryStatistics.get(query); Map<String, String> stat = new HashMap<String, String>(); stat.put("query", query); //stat.put("tquery", HibernateUtil.toSql(query)); stat.put("executionCount", Long.toString(queryStats.getExecutionCount())); stat.put("executionRowCount", Long.toString(queryStats.getExecutionRowCount())); stat.put("executionMaxTime", Long.toString(queryStats.getExecutionMaxTime())); stat.put("executionMinTime", Long.toString(queryStats.getExecutionMinTime())); stat.put("executionAvgTime", Long.toString(queryStats.getExecutionAvgTime())); stat.put("executionTotalTime", Long.toString(queryStats.getExecutionAvgTime() * queryStats.getExecutionCount())); stat.put("cacheHitCount", Long.toString(queryStats.getCacheHitCount())); stat.put("cacheMissCount", Long.toString(queryStats.getCacheMissCount())); stat.put("cachePutCount", Long.toString(queryStats.getCachePutCount())); qStats.add(stat); } // Entity Statistics List<Map<String, String>> eStats = new ArrayList<Map<String, String>>(); for (String entity : entityStatistics.keySet()) { EntityStatistics entityStats = entityStatistics.get(entity); Map<String, String> stat = new HashMap<String, String>(); stat.put("entity", entity); stat.put("loadCount", Long.toString(entityStats.getLoadCount())); stat.put("fetchCount", Long.toString(entityStats.getFetchCount())); stat.put("insertCount", Long.toString(entityStats.getInsertCount())); stat.put("updateCount", Long.toString(entityStats.getUpdateCount())); stat.put("deleteCount", Long.toString(entityStats.getDeleteCount())); stat.put("optimisticFailureCount", Long.toString(entityStats.getOptimisticFailureCount())); eStats.add(stat); } // Collection Statistics List<Map<String, String>> cStats = new ArrayList<Map<String, String>>(); for (String collection : collectionStatistics.keySet()) { CollectionStatistics collectionStats = collectionStatistics.get(collection); Map<String, String> stat = new HashMap<String, String>(); stat.put("collection", collection); stat.put("loadCount", Long.toString(collectionStats.getLoadCount())); stat.put("fetchCount", Long.toString(collectionStats.getFetchCount())); stat.put("updateCount", Long.toString(collectionStats.getUpdateCount())); stat.put("recreateCount", Long.toString(collectionStats.getRecreateCount())); stat.put("removeCount", Long.toString(collectionStats.getRemoveCount())); cStats.add(stat); } // 2nd Level Cache Statistics long totalSizeInMemory = 0; List<Map<String, String>> slcStats = new ArrayList<Map<String, String>>(); for (String cache : secondLevelCacheStatistics.keySet()) { SecondLevelCacheStatistics cacheStats = secondLevelCacheStatistics.get(cache); totalSizeInMemory += cacheStats.getSizeInMemory(); Map<String, String> stat = new HashMap<String, String>(); stat.put("cache", cache); stat.put("putCount", Long.toString(cacheStats.getPutCount())); stat.put("hitCount", Long.toString(cacheStats.getHitCount())); stat.put("missCount", Long.toString(cacheStats.getMissCount())); stat.put("elementCountInMemory", Long.toString(cacheStats.getElementCountInMemory())); stat.put("sizeInMemory", Long.toString(cacheStats.getSizeInMemory())); stat.put("elementCountOnDisk", Long.toString(cacheStats.getElementCountOnDisk())); slcStats.add(stat); } ServletContext sc = getServletContext(); sc.setAttribute("generalStats", generalStatistics); sc.setAttribute("queryStats", qStats); sc.setAttribute("entityStats", eStats); sc.setAttribute("collectionStats", cStats); sc.setAttribute("secondLevelCacheStats", slcStats); sc.setAttribute("totalSizeInMemory", totalSizeInMemory); sc.setAttribute("statsEnabled", HibernateUtil.getSessionFactory().getStatistics().isStatisticsEnabled()); sc.getRequestDispatcher("/admin/hibernate_stats.jsp").forward(request, response); // Activity log UserActivity.log(request.getRemoteUser(), "ADMIN_HIBERNATE_STATS", null, null, null); log.debug("view: void"); }
From source file:com.zutubi.pulse.master.xwork.actions.admin.debug.HibernateStatisticsAction.java
License:Apache License
private void loadStatistics() { for (String region : stats.getSecondLevelCacheRegionNames()) { SecondLevelCacheStatistics regionStats = stats.getSecondLevelCacheStatistics(region); secondLevelCacheSize += regionStats.getSizeInMemory(); secondLevelCacheStats.put(region, regionStats); }//from www .j a va 2s . c om for (String query : stats.getQueries()) { queryStats.put(query, stats.getQueryStatistics(query)); } for (String entity : stats.getEntityNames()) { entityStats.put(entity, stats.getEntityStatistics(entity)); } entityNames.addAll(entityStats.keySet()); Collections.sort(entityNames, new Sort.StringComparator()); }
From source file:net.welen.buzz.typehandler.impl.hibernate.HibernateSecondLevelStatisticsUnitHandler.java
License:Open Source License
public void getValues(BuzzAnswer values) throws TypeHandlerException { for (String tmp : getMeasurableUnits()) { String name = tmp.split("" + SEPARATOR)[0]; String region = tmp.split("" + SEPARATOR)[1]; // Find the Hibernate Session Factory in JNDI SessionFactory sessionFactory = null; boolean debug = LOG.isDebugEnabled(); Object o;/*from w w w. ja va 2s .com*/ try { if (debug) { LOG.debug("Looking up: " + name); } o = new InitialContext().lookup(name); } catch (NamingException e) { throw new TypeHandlerException(e); } if (debug) { LOG.debug("Found class: " + o.getClass().getName()); } if (o.getClass().getName().equals("org.hibernate.ejb.EntityManagerFactoryImpl")) { // Hibernate 4 sessionFactory = ((EntityManagerFactoryImpl) o).getSessionFactory(); } else { // Hibernate 3 sessionFactory = (SessionFactory) o; } // Get all values for the SecondLevelCacheRegion SecondLevelCacheStatistics stats = sessionFactory.getStatistics().getSecondLevelCacheStatistics(region); LOG.debug("Got SecondLevelCacheStatistics for region: " + region + " " + stats); String measurementUnit = getMeasurementUnit(); try { values.put(measurementUnit, name + SEPARATOR + region, "ElementCountInMemory", stats.getElementCountInMemory()); values.put(measurementUnit, name + SEPARATOR + region, "ElementCountOnDisk", stats.getElementCountOnDisk()); values.put(measurementUnit, name + SEPARATOR + region, "HitCount", stats.getHitCount()); values.put(measurementUnit, name + SEPARATOR + region, "MissCount", stats.getMissCount()); values.put(measurementUnit, name + SEPARATOR + region, "PutCount", stats.getPutCount()); values.put(measurementUnit, name + SEPARATOR + region, "SizeInMemory", stats.getSizeInMemory()); } catch (IncompatibleClassChangeError e) { // Newer versions of SecondLevelCacheStatistics is not an Object anymore. It's an interface // so we use Reflection in that case (otherwise we need to recompile Buzz for the specific // version if Hibernate. LOG.debug("SecondLevelCacheStatistics is an Interface. Using Reflection"); Class<?> statsClass = stats.getClass(); try { values.put(measurementUnit, name + SEPARATOR + region, "ElementCountInMemory", statsClass.getMethod("getElementCountInMemory", (Class<?>) null) .invoke(stats, (Object[]) null).toString()); values.put(measurementUnit, name + SEPARATOR + region, "ElementCountOnDisk", statsClass.getMethod("getElementCountOnDisk", (Class<?>) null) .invoke(stats, (Object[]) null).toString()); values.put(measurementUnit, name + SEPARATOR + region, "HitCount", statsClass .getMethod("getHitCount", (Class<?>) null).invoke(stats, (Object[]) null).toString()); values.put(measurementUnit, name + SEPARATOR + region, "MissCount", statsClass .getMethod("getMissCount", (Class<?>) null).invoke(stats, (Object[]) null).toString()); values.put(measurementUnit, name + SEPARATOR + region, "PutCount", statsClass .getMethod("getPutCount", (Class<?>) null).invoke(stats, (Object[]) null).toString()); values.put(measurementUnit, name + SEPARATOR + region, "SizeInMemory", statsClass.getMethod("getSizeInMemory", (Class<?>) null).invoke(stats, (Object[]) null) .toString()); } catch (SecurityException ex) { throw new TypeHandlerException(ex); } catch (NoSuchMethodException ex) { throw new TypeHandlerException(ex); } catch (IllegalArgumentException ex) { throw new TypeHandlerException(ex); } catch (IllegalAccessException ex) { throw new TypeHandlerException(ex); } catch (InvocationTargetException ex) { throw new TypeHandlerException(ex); } } } }
From source file:org.bedework.calcore.hibernate.DbStatistics.java
License:Apache License
private static void secondLevelStats(Collection<StatsEntry> c, Statistics dbStats, String name) { c.add(new StatsEntry("Second level statistics for " + name)); SecondLevelCacheStatistics slStats = dbStats.getSecondLevelCacheStatistics(name); c.add(new StatsEntry("Elements in memory", slStats.getElementCountInMemory())); c.add(new StatsEntry("Element on disk", slStats.getElementCountOnDisk())); //c.add(new StatsEntry("Entries", slStats.getEntries())); c.add(new StatsEntry("Hit count", slStats.getHitCount())); c.add(new StatsEntry("Miss count", slStats.getMissCount())); c.add(new StatsEntry("Put count", slStats.getPutCount())); c.add(new StatsEntry("Memory size", slStats.getSizeInMemory())); }
From source file:org.horizontaldb.shard.hibernate.AbstractDaoEnricher.java
License:Apache License
private void logSlcStats(Session session, String tenantId) { if (LOG.isTraceEnabled() && session != null) { Statistics statistics = session.getSessionFactory().getStatistics(); if (statistics != null && statistics.isStatisticsEnabled()) { String[] regions = statistics.getSecondLevelCacheRegionNames(); for (String region : regions) { SecondLevelCacheStatistics stat = statistics.getSecondLevelCacheStatistics(region); LOG.trace(String.format( "secondLevelCacheStatistics.%s.%s=hits[%s], misses[%s], puts[%s], memCount[%s], memSize[%s], diskCount[%s]", tenantId, region, stat.getHitCount(), stat.getMissCount(), stat.getPutCount(), stat.getElementCountInMemory(), stat.getSizeInMemory(), stat.getElementCountOnDisk())); }/*from w w w. ja v a2 s . c om*/ } } }
From source file:org.riotfamily.statistics.dao.HibernateCacheRegionDao.java
License:Apache License
@Override protected List<? extends StatsItem> getStats() { ArrayList<CacheRegionStatsItem> stats = Generics.newArrayList(); String[] regions = sessionFactory.getStatistics().getSecondLevelCacheRegionNames(); for (String region : regions) { CacheRegionStatsItem item = new CacheRegionStatsItem(region); SecondLevelCacheStatistics sl = sessionFactory.getStatistics().getSecondLevelCacheStatistics(region); item.setElementsInMemory(sl.getElementCountInMemory()); item.setElementsOnDisk(sl.getElementCountOnDisk()); item.setHitCount(sl.getHitCount()); item.setMissCount(sl.getMissCount()); item.setPutCount(sl.getPutCount()); item.setKbInMemory(sl.getSizeInMemory() / 1024); stats.add(item);/* w w w .j av a 2s. c o m*/ } return stats; }
From source file:org.unitime.commons.hibernate.stats.StatsProvider.java
License:Open Source License
/** * Format statistics in HTML/* ww w. ja v a 2 s . c o m*/ * @param sessionFactory Hibernate Session Factory * @param summaryOnly true - Display only summary info * @return HTML String */ public String getStatsHtml(SessionFactory sessionFactory, boolean summaryOnly) { StringBuffer hibStats = new StringBuffer(); try { // Get statistics Statistics stats = sessionFactory.getStatistics(); // Checks statistics enabled if (!stats.isStatisticsEnabled()) { return "<font color='red'><b>Hibernate statistics is not enabled.</b></font>"; } // Row Color for even numbered rows String evenRowColor = "#FAFAFA"; // Generate HTML table Table table = new Table(); table.setWidth("100%"); table.setBorder(0); table.setCellSpacing(0); table.setCellPadding(3); // Links StringBuffer links = new StringBuffer(""); links.append("<A class=\"l7\" href=\"#Entity\">Entity</A>"); if (!summaryOnly) links.append(" - <A class=\"l7\" href=\"#EntityDetail\">Detail</A>"); links.append(" | <A class=\"l7\" href=\"#Collection\">Collection</A>"); if (!summaryOnly) links.append(" - <A class=\"l7\" href=\"#CollectionDetail\">Detail</A>"); links.append(" | <A class=\"l7\" href=\"#SecondLevelCache\">Second Level Cache</A>"); if (!summaryOnly) links.append(" - <A class=\"l7\" href=\"#SecondLevelCacheDetail\">Detail</A>"); links.append(" | <A class=\"l7\" href=\"#Query\">Query</A>"); if (!summaryOnly) links.append(" - <A class=\"l7\" href=\"#QueryDetail\">Detail</A>"); TableRow row = new TableRow(); row.addContent(cell(links.toString(), 1, 2, true, "center", "middle")); table.addContent(row); // Link to top TableRow linkToTop = new TableRow(); linkToTop.addContent( cell("<A class=\"l7\" href=\"#BackToTop\">Back to Top</A>", 1, 2, true, "right", "middle")); // ---------------------- Overall Stats ------------------------ row = new TableRow(); row.addContent(headerCell("<A name=\"BackToTop\">Metric</A>", 1, 1)); row.addContent(headerCell("Value", 1, 1)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Start Time", 1, 1, true)); row.addContent(cell(new Date(stats.getStartTime()).toString(), 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Connect Count", 1, 1, true)); row.addContent(cell(stats.getConnectCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Flush Count", 1, 1, true)); row.addContent(cell(stats.getFlushCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Session Open Count", 1, 1, true)); row.addContent(cell(stats.getSessionOpenCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Session Close Count", 1, 1, true)); row.addContent(cell(stats.getSessionCloseCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Transaction Count", 1, 1, true)); row.addContent(cell(stats.getTransactionCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Successful Transaction Count", 1, 1, true)); row.addContent(cell(stats.getSuccessfulTransactionCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Prepare Statement Count", 1, 1, true)); row.addContent(cell(stats.getPrepareStatementCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Close Statement Count", 1, 1, true)); row.addContent(cell(stats.getCloseStatementCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Optimistic Failure Count", 1, 1, true)); row.addContent(cell(stats.getOptimisticFailureCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); // ---------------------- Entity Stats ------------------------ row = new TableRow(); row.addContent(headerCell("<A name=\"Entity\">Entity</A>:", 1, 2)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Fetch Count", 1, 1, true)); row.addContent(cell(stats.getEntityFetchCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Load Count", 1, 1, true)); row.addContent(cell(stats.getEntityLoadCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Insert Count", 1, 1, true)); row.addContent(cell(stats.getEntityInsertCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Update Count", 1, 1, true)); row.addContent(cell(stats.getEntityUpdateCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Delete Count", 1, 1, true)); row.addContent(cell(stats.getEntityDeleteCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); table.addContent(linkToTop); // ---------------------- Detailed Entity Stats ------------------------ if (!summaryOnly) { row = new TableRow(); row.addContent(headerCell("<A name=\"EntityDetail\">Entity Statistics Detail</A>:", 1, 2)); table.addContent(row); String[] cEntityNames = stats.getEntityNames(); if (cEntityNames == null || cEntityNames.length == 0) { row = new TableRow(); row.addContent(cell("No entity names found", 1, 2, false)); table.addContent(row); } else { Table subTable = new Table(); subTable.setCellSpacing(1); subTable.setCellPadding(3); row = new TableRow(); row.addContent(headerCell(" ", 1, 1)); row.addContent(headerCell(" Fetches ", 1, 1)); row.addContent(headerCell(" Loads ", 1, 1)); row.addContent(headerCell(" Inserts ", 1, 1)); row.addContent(headerCell(" Updates ", 1, 1)); row.addContent(headerCell(" Deletes ", 1, 1)); subTable.addContent(row); for (int i = 0; i < cEntityNames.length; i++) { String entityName = cEntityNames[i]; EntityStatistics eStats = stats.getEntityStatistics(entityName); row = new TableRow(); if (i % 2 == 0) row.setBgColor(evenRowColor); row.addContent(cell(entityName + " ", 1, 1, true)); row.addContent(cell(eStats.getFetchCount() + "", 1, 1, false)); row.addContent(cell(eStats.getLoadCount() + "", 1, 1, false)); row.addContent(cell(eStats.getInsertCount() + "", 1, 1, false)); row.addContent(cell(eStats.getUpdateCount() + "", 1, 1, false)); row.addContent(cell(eStats.getDeleteCount() + "", 1, 1, false)); subTable.addContent(row); } row = new TableRow(); row.addContent(cell(subTable.toHtml(), 1, 2, true)); table.addContent(row); } row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); table.addContent(linkToTop); } // ---------------------- Collection Stats ------------------------ row = new TableRow(); row.addContent(headerCell("<A name=\"Collection\">Collection</A>:", 1, 2)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Fetch Count", 1, 1, true)); row.addContent(cell(stats.getCollectionFetchCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Load Count", 1, 1, true)); row.addContent(cell(stats.getCollectionLoadCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Update Count", 1, 1, true)); row.addContent(cell(stats.getCollectionUpdateCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Remove Count", 1, 1, true)); row.addContent(cell(stats.getCollectionRemoveCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Recreate Count", 1, 1, true)); row.addContent(cell(stats.getCollectionRecreateCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); table.addContent(linkToTop); // ---------------------- Detailed Collection Stats ------------------------ if (!summaryOnly) { row = new TableRow(); row.addContent(headerCell("<A name=\"CollectionDetail\">Collection Statistics Detail</A>:", 1, 2)); table.addContent(row); String[] cRoleNames = stats.getCollectionRoleNames(); if (cRoleNames == null || cRoleNames.length == 0) { row = new TableRow(); row.addContent(cell("No collection roles found", 1, 2, false)); table.addContent(row); } else { Table subTable = new Table(); subTable.setCellSpacing(1); subTable.setCellPadding(3); row = new TableRow(); row.addContent(headerCell(" ", 1, 1)); row.addContent(headerCell(" Fetches ", 1, 1)); row.addContent(headerCell(" Loads ", 1, 1)); row.addContent(headerCell(" Updates ", 1, 1)); row.addContent(headerCell(" Removes ", 1, 1)); row.addContent(headerCell(" Recreates ", 1, 1)); subTable.addContent(row); for (int i = 0; i < cRoleNames.length; i++) { String roleName = cRoleNames[i]; CollectionStatistics cStats = stats.getCollectionStatistics(roleName); row = new TableRow(); if (i % 2 == 0) row.setBgColor(evenRowColor); row.addContent(cell(roleName + " ", 1, 1, true)); row.addContent(cell(cStats.getFetchCount() + "", 1, 1, false)); row.addContent(cell(cStats.getLoadCount() + "", 1, 1, false)); row.addContent(cell(cStats.getUpdateCount() + "", 1, 1, false)); row.addContent(cell(cStats.getRemoveCount() + "", 1, 1, false)); row.addContent(cell(cStats.getRecreateCount() + "", 1, 1, false)); subTable.addContent(row); } row = new TableRow(); row.addContent(cell(subTable.toHtml(), 1, 2, true)); table.addContent(row); } row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); table.addContent(linkToTop); } // ---------------------- Second Level Cache Stats ------------------------ row = new TableRow(); row.addContent(headerCell("<A name=\"SecondLevelCache\">Second Level Cache</A>:", 1, 2)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Hit Count", 1, 1, true)); row.addContent(cell(stats.getSecondLevelCacheHitCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Miss Count", 1, 1, true)); row.addContent(cell(stats.getSecondLevelCacheMissCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Put Count", 1, 1, true)); row.addContent(cell(stats.getSecondLevelCachePutCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); table.addContent(linkToTop); // ---------------------- Detailed Second Level Cache Stats ------------------------ if (!summaryOnly) { row = new TableRow(); row.addContent(headerCell( "<A name=\"SecondLevelCacheDetail\">Second Level Cache Statistics Detail</A>:", 1, 2)); table.addContent(row); String[] cRegionNames = stats.getSecondLevelCacheRegionNames(); if (cRegionNames == null || cRegionNames.length == 0) { row = new TableRow(); row.addContent(cell("No region names found", 1, 2, false)); table.addContent(row); } else { Table subTable = new Table(); subTable.setCellSpacing(1); subTable.setCellPadding(3); row = new TableRow(); row.addContent(headerCell(" ", 1, 1)); row.addContent(headerCell(" Entities ", 1, 1)); row.addContent(headerCell(" Hits ", 1, 1)); row.addContent(headerCell(" Misses ", 1, 1)); row.addContent(headerCell(" Puts ", 1, 1)); row.addContent(headerCell(" In Memory ", 1, 1)); row.addContent(headerCell(" On Disk ", 1, 1)); row.addContent(headerCell(" Memory ", 1, 1)); subTable.addContent(row); long elementsInMem = 0, elementsOnDisk = 0, putCnt = 0, missCnt = 0, hitCnt = 0, size = 0; for (int i = 0; i < cRegionNames.length; i++) { String cRegionName = cRegionNames[i]; SecondLevelCacheStatistics sStats = stats.getSecondLevelCacheStatistics(cRegionName); row = new TableRow(); if (i % 2 == 0) row.setBgColor(evenRowColor); row.addContent(cell(cRegionName + " ", 1, 1, true)); row.addContent(cell( String.valueOf(sStats.getElementCountInMemory() + sStats.getElementCountOnDisk()), 1, 1, false)); //sStats.getEntries().size() row.addContent(cell(sStats.getHitCount() + "", 1, 1, false)); row.addContent(cell(sStats.getMissCount() + "", 1, 1, false)); row.addContent(cell(sStats.getPutCount() + "", 1, 1, false)); row.addContent(cell(sStats.getElementCountInMemory() + "", 1, 1, false)); row.addContent(cell(sStats.getElementCountOnDisk() + "", 1, 1, false)); row.addContent(cell(sStats.getSizeInMemory() + " bytes", 1, 1, false)); elementsInMem += sStats.getElementCountInMemory(); elementsOnDisk += sStats.getElementCountOnDisk(); putCnt += sStats.getPutCount(); missCnt += sStats.getMissCount(); hitCnt += sStats.getHitCount(); size += sStats.getSizeInMemory(); subTable.addContent(row); } row = new TableRow(); row.addContent(headerCell("Total ", 1, 1)); row.addContent(headerCell("" + (elementsInMem + elementsOnDisk), 1, 1)); row.addContent(headerCell("" + hitCnt, 1, 1)); row.addContent(headerCell("" + missCnt, 1, 1)); row.addContent(headerCell("" + putCnt, 1, 1)); row.addContent(headerCell("" + elementsInMem, 1, 1)); row.addContent(headerCell("" + elementsOnDisk, 1, 1)); row.addContent(headerCell(size + " bytes", 1, 1)); subTable.addContent(row); row = new TableRow(); row.addContent(cell(subTable.toHtml(), 1, 2, true)); table.addContent(row); } row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); table.addContent(linkToTop); } // ---------------------- Query Stats ------------------------ row = new TableRow(); row.addContent(headerCell("<A name=\"Query\">Query</A>:", 1, 2)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Execution Count", 1, 1, true)); row.addContent(cell(stats.getQueryExecutionCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Execution Max Time", 1, 1, true)); row.addContent(cell(stats.getQueryExecutionMaxTime() + " ms", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Cache Hit Count", 1, 1, true)); row.addContent(cell(stats.getQueryCacheHitCount() + " ms", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Cache Miss Count", 1, 1, true)); row.addContent(cell(stats.getQueryCacheMissCount() + " ms", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell(" Cache Put Count", 1, 1, true)); row.addContent(cell(stats.getQueryCachePutCount() + "", 1, 1, false)); table.addContent(row); row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); table.addContent(linkToTop); // ---------------------- Detailed Query Stats ------------------------ if (!summaryOnly) { row = new TableRow(); row.addContent(headerCell("<A name=\"QueryDetail\">Query Statistics Detail</A>:", 1, 2)); table.addContent(row); String[] cQueryStrings = stats.getQueries(); if (cQueryStrings == null || cQueryStrings.length == 0) { row = new TableRow(); row.addContent(cell("No query strings found", 1, 2, false)); table.addContent(row); } else { Table subTable = new Table(); subTable.setCellSpacing(1); subTable.setCellPadding(3); row = new TableRow(); row.addContent(headerCell(" ", 1, 1)); row.addContent(headerCell(" Execs ", 1, 1)); row.addContent(headerCell(" Rows ", 1, 1)); row.addContent(headerCell(" Max Time ", 1, 1)); row.addContent(headerCell(" Min Time ", 1, 1)); row.addContent(headerCell(" Avg Time ", 1, 1)); row.addContent(headerCell(" Cache Hits ", 1, 1)); row.addContent(headerCell(" Cache Misses ", 1, 1)); row.addContent(headerCell(" Cache Puts ", 1, 1)); subTable.addContent(row); for (int i = 0; i < cQueryStrings.length; i++) { String cQueryString = cQueryStrings[i]; QueryStatistics qStats = stats.getQueryStatistics(cQueryString); row = new TableRow(); if (i % 2 == 0) row.setBgColor(evenRowColor); row.addContent(cell(cQueryString + " ", 1, 1, false)); row.addContent(cell(qStats.getExecutionCount() + "", 1, 1, false)); row.addContent(cell(qStats.getExecutionRowCount() + "", 1, 1, false)); row.addContent(cell(qStats.getExecutionMaxTime() + " ms", 1, 1, false)); row.addContent(cell(qStats.getExecutionMinTime() + " ms", 1, 1, false)); row.addContent(cell(qStats.getExecutionAvgTime() + " ms", 1, 1, false)); row.addContent(cell(qStats.getCacheHitCount() + "", 1, 1, false)); row.addContent(cell(qStats.getCacheMissCount() + "", 1, 1, false)); row.addContent(cell(qStats.getCachePutCount() + "", 1, 1, false)); subTable.addContent(row); } row = new TableRow(); row.addContent(cell(subTable.toHtml(), 1, 2, true)); table.addContent(row); } row = new TableRow(); row.addContent(cell("<hr>", 1, 2, false)); table.addContent(row); table.addContent(linkToTop); } // Add to generated HTML hibStats.append(table.toHtml()); } catch (Exception e) { hibStats.append("Exception occured: " + e.getMessage()); e.printStackTrace(); } return hibStats.toString(); }