All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.ehcache.hibernate.management.impl.EhcacheHibernate Maven / Gradle / Ivy

Go to download

Ehcache is an open source, standards-based cache used to boost performance, offload the database and simplify scalability. Ehcache is robust, proven and full-featured and this has made it the most widely-used Java-based cache.

There is a newer version: 2.10.9.2
Show newest version
/**
 *  Copyright Terracotta, Inc.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package net.sf.ehcache.hibernate.management.impl;

import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;

import javax.management.MBeanNotificationInfo;
import javax.management.NotCompliantMBeanException;
import javax.management.Notification;
import javax.management.openmbean.TabularData;

import net.sf.ehcache.CacheManager;
import net.sf.ehcache.hibernate.management.api.EhcacheHibernateMBean;
import net.sf.ehcache.hibernate.management.api.EhcacheStats;
import net.sf.ehcache.hibernate.management.api.HibernateStats;

import org.hibernate.SessionFactory;

/**
 * Implementation of the {@link EhcacheHibernateMBean}
 * 
 * 

* * @author Abhishek Sanoujam * */ public class EhcacheHibernate extends BaseEmitterBean implements EhcacheHibernateMBean { private static final MBeanNotificationInfo NOTIFICATION_INFO; private final AtomicBoolean statsEnabled = new AtomicBoolean(true); private EhcacheStats ehcacheStats; private volatile HibernateStats hibernateStats = NullHibernateStats.INSTANCE; static { final String[] notifTypes = new String[] {}; final String name = Notification.class.getName(); final String description = "Ehcache Hibernate Statistics Event"; NOTIFICATION_INFO = new MBeanNotificationInfo(notifTypes, name, description); } /** * Constructor accepting the backing {@link CacheManager} * * @param manager * the backing {@link CacheManager} * @throws NotCompliantMBeanException */ public EhcacheHibernate(CacheManager manager) throws NotCompliantMBeanException { super(EhcacheHibernateMBean.class); ehcacheStats = new EhcacheStatsImpl(manager); } /** * Enable hibernate statistics with the input session factory * */ public void enableHibernateStatistics(SessionFactory sessionFactory) { try { hibernateStats = new HibernateStatsImpl(sessionFactory); } catch (Exception e) { throw new RuntimeException(e); } } /** * {@inheritDoc} * */ public boolean isHibernateStatisticsSupported() { return hibernateStats instanceof HibernateStatsImpl; } /** * {@inheritDoc} */ public void setStatisticsEnabled(boolean flag) { if (flag) { hibernateStats.enableStats(); } else { hibernateStats.disableStats(); } statsEnabled.set(flag); sendNotification(HibernateStats.CACHE_STATISTICS_ENABLED, flag); } /** * {@inheritDoc} */ public boolean isStatisticsEnabled() { return statsEnabled.get(); } /** * {@inheritDoc} */ public void clearStats() { hibernateStats.clearStats(); } /** * {@inheritDoc} */ public void disableStats() { setStatisticsEnabled(false); } /** * {@inheritDoc} */ public void enableStats() { setStatisticsEnabled(true); } /** * {@inheritDoc} */ public void flushRegionCache(String region) { ehcacheStats.flushRegionCache(region); sendNotification(HibernateStats.CACHE_REGION_FLUSHED, region); } /** * {@inheritDoc} */ public void flushRegionCaches() { ehcacheStats.flushRegionCaches(); sendNotification(HibernateStats.CACHE_FLUSHED); } /** * {@inheritDoc} */ public String generateActiveConfigDeclaration() { return ehcacheStats.generateActiveConfigDeclaration(); } /** * {@inheritDoc} */ public String generateActiveConfigDeclaration(String region) { return ehcacheStats.generateActiveConfigDeclaration(region); } /** * {@inheritDoc} */ public long getCacheHitCount() { return ehcacheStats.getCacheHitCount(); } /** * {@inheritDoc} */ public double getCacheHitRate() { return ehcacheStats.getCacheHitRate(); } /** * {@inheritDoc} */ public long getCacheHitSample() { return ehcacheStats.getCacheHitSample(); } /** * {@inheritDoc} */ public long getCacheMissCount() { return ehcacheStats.getCacheMissCount(); } /** * {@inheritDoc} */ public double getCacheMissRate() { return ehcacheStats.getCacheMissRate(); } /** * {@inheritDoc} */ public long getCacheMissSample() { return ehcacheStats.getCacheMissSample(); } /** * {@inheritDoc} */ public long getCachePutCount() { return ehcacheStats.getCachePutCount(); } /** * {@inheritDoc} */ public double getCachePutRate() { return ehcacheStats.getCachePutRate(); } /** * {@inheritDoc} */ public long getCachePutSample() { return ehcacheStats.getCachePutSample(); } /** * {@inheritDoc} */ public TabularData getCacheRegionStats() { return hibernateStats.getCacheRegionStats(); } /** * {@inheritDoc} */ public long getCloseStatementCount() { return hibernateStats.getCloseStatementCount(); } /** * {@inheritDoc} */ public TabularData getCollectionStats() { return hibernateStats.getCollectionStats(); } /** * {@inheritDoc} */ public long getConnectCount() { return hibernateStats.getConnectCount(); } /** * {@inheritDoc} */ public TabularData getEntityStats() { return hibernateStats.getEntityStats(); } /** * {@inheritDoc} */ public long getFlushCount() { return hibernateStats.getFlushCount(); } /** * {@inheritDoc} */ public long getOptimisticFailureCount() { return hibernateStats.getOptimisticFailureCount(); } /** * {@inheritDoc} */ public String getOriginalConfigDeclaration() { return ehcacheStats.getOriginalConfigDeclaration(); } /** * {@inheritDoc} */ public String getOriginalConfigDeclaration(String region) { return ehcacheStats.getOriginalConfigDeclaration(region); } /** * {@inheritDoc} */ public long getPrepareStatementCount() { return hibernateStats.getPrepareStatementCount(); } /** * {@inheritDoc} */ public long getQueryExecutionCount() { return hibernateStats.getQueryExecutionCount(); } /** * {@inheritDoc} */ public double getQueryExecutionRate() { return hibernateStats.getQueryExecutionRate(); } /** * {@inheritDoc} */ public long getQueryExecutionSample() { return hibernateStats.getQueryExecutionSample(); } /** * {@inheritDoc} */ public TabularData getQueryStats() { return hibernateStats.getQueryStats(); } /** * {@inheritDoc} */ public Map> getRegionCacheAttributes() { return ehcacheStats.getRegionCacheAttributes(); } /** * {@inheritDoc} */ public Map getRegionCacheAttributes(String regionName) { return ehcacheStats.getRegionCacheAttributes(regionName); } /** * {@inheritDoc} */ public int getRegionCacheMaxTTISeconds(String region) { return ehcacheStats.getRegionCacheMaxTTISeconds(region); } /** * {@inheritDoc} */ public int getRegionCacheMaxTTLSeconds(String region) { return ehcacheStats.getRegionCacheMaxTTLSeconds(region); } /** * {@inheritDoc} */ public int getRegionCacheOrphanEvictionPeriod(String region) { return ehcacheStats.getRegionCacheOrphanEvictionPeriod(region); } /** * {@inheritDoc} */ public Map getRegionCacheSamples() { return ehcacheStats.getRegionCacheSamples(); } /** * {@inheritDoc} */ public int getRegionCacheTargetMaxInMemoryCount(String region) { return ehcacheStats.getRegionCacheTargetMaxInMemoryCount(region); } /** * {@inheritDoc} */ public int getRegionCacheTargetMaxTotalCount(String region) { return ehcacheStats.getRegionCacheTargetMaxTotalCount(region); } /** * {@inheritDoc} */ public long getSessionCloseCount() { return hibernateStats.getSessionCloseCount(); } /** * {@inheritDoc} */ public long getSessionOpenCount() { return hibernateStats.getSessionOpenCount(); } /** * {@inheritDoc} */ public long getSuccessfulTransactionCount() { return hibernateStats.getSuccessfulTransactionCount(); } /** * {@inheritDoc} */ public String[] getTerracottaHibernateCacheRegionNames() { return ehcacheStats.getTerracottaHibernateCacheRegionNames(); } /** * {@inheritDoc} */ public long getTransactionCount() { return hibernateStats.getTransactionCount(); } /** * {@inheritDoc} */ public boolean isRegionCacheEnabled(String region) { return ehcacheStats.isRegionCacheEnabled(region); } /** * {@inheritDoc} */ public void setRegionCachesEnabled(boolean enabled) { ehcacheStats.setRegionCachesEnabled(enabled); sendNotification(HibernateStats.CACHE_ENABLED, enabled); } /** * {@inheritDoc} */ public void setRegionCacheEnabled(String region, boolean enabled) { ehcacheStats.setRegionCacheEnabled(region, enabled); sendNotification(HibernateStats.CACHE_REGION_CHANGED, getRegionCacheAttributes(region), region); } /** * {@inheritDoc} */ public boolean isRegionCacheLoggingEnabled(String region) { return ehcacheStats.isRegionCacheLoggingEnabled(region); } /** * {@inheritDoc} */ public boolean isRegionCacheOrphanEvictionEnabled(String region) { return ehcacheStats.isRegionCacheOrphanEvictionEnabled(region); } /** * {@inheritDoc} */ public boolean isRegionCachesEnabled() { return ehcacheStats.isRegionCachesEnabled(); } /** * {@inheritDoc} */ public boolean isTerracottaHibernateCache(String region) { return ehcacheStats.isTerracottaHibernateCache(region); } /** * {@inheritDoc} */ public void setRegionCacheLoggingEnabled(String region, boolean loggingEnabled) { ehcacheStats.setRegionCacheLoggingEnabled(region, loggingEnabled); sendNotification(HibernateStats.CACHE_REGION_CHANGED, getRegionCacheAttributes(region), region); } /** * {@inheritDoc} */ public void setRegionCacheMaxTTISeconds(String region, int maxTTISeconds) { ehcacheStats.setRegionCacheMaxTTISeconds(region, maxTTISeconds); sendNotification(HibernateStats.CACHE_REGION_CHANGED, getRegionCacheAttributes(region), region); } /** * {@inheritDoc} */ public void setRegionCacheMaxTTLSeconds(String region, int maxTTLSeconds) { ehcacheStats.setRegionCacheMaxTTLSeconds(region, maxTTLSeconds); sendNotification(HibernateStats.CACHE_REGION_CHANGED, getRegionCacheAttributes(region), region); } /** * {@inheritDoc} */ public void setRegionCacheTargetMaxInMemoryCount(String region, int targetMaxInMemoryCount) { ehcacheStats.setRegionCacheTargetMaxInMemoryCount(region, targetMaxInMemoryCount); sendNotification(HibernateStats.CACHE_REGION_CHANGED, getRegionCacheAttributes(region), region); } /** * {@inheritDoc} */ public void setRegionCacheTargetMaxTotalCount(String region, int targetMaxTotalCount) { ehcacheStats.setRegionCacheTargetMaxTotalCount(region, targetMaxTotalCount); sendNotification(HibernateStats.CACHE_REGION_CHANGED, getRegionCacheAttributes(region), region); } /** * {@inheritDoc} * * @see net.sf.ehcache.hibernate.management.api.EhcacheStats#getNumberOfElementsInMemory(java.lang.String) */ public int getNumberOfElementsInMemory(String region) { return ehcacheStats.getNumberOfElementsInMemory(region); } /** * {@inheritDoc} * * @see net.sf.ehcache.hibernate.management.api.EhcacheStats#getNumberOfElementsInMemory(java.lang.String) */ public int getNumberOfElementsOffHeap(String region) { return ehcacheStats.getNumberOfElementsOffHeap(region); } /** * {@inheritDoc} * * @see net.sf.ehcache.hibernate.management.api.EhcacheStats#getNumberOfElementsOnDisk(java.lang.String) */ public int getNumberOfElementsOnDisk(String region) { return ehcacheStats.getNumberOfElementsOnDisk(region); } /** * {@inheritDoc} * * @see net.sf.ehcache.hibernate.management.api.EhcacheStats#getMaxGetTimeMillis() */ public long getMaxGetTimeMillis() { return ehcacheStats.getMaxGetTimeMillis(); } /** * {@inheritDoc} * * @see net.sf.ehcache.hibernate.management.api.EhcacheStats#getMaxGetTimeMillis(java.lang.String) */ public long getMaxGetTimeMillis(String cacheName) { return ehcacheStats.getMaxGetTimeMillis(cacheName); } /** * {@inheritDoc} * * @see net.sf.ehcache.hibernate.management.api.EhcacheStats#getMinGetTimeMillis() */ public long getMinGetTimeMillis() { return ehcacheStats.getMinGetTimeMillis(); } /** * {@inheritDoc} * * @see net.sf.ehcache.hibernate.management.api.EhcacheStats#getMinGetTimeMillis(java.lang.String) */ public long getMinGetTimeMillis(String cacheName) { return ehcacheStats.getMinGetTimeMillis(cacheName); } /** * {@inheritDoc} * * @see net.sf.ehcache.hibernate.management.api.EhcacheStats#getAverageGetTimeMillis(java.lang.String) */ public float getAverageGetTimeMillis(String region) { return ehcacheStats.getAverageGetTimeMillis(region); } /** * {@inheritDoc} */ @Override protected void doDispose() { // no-op } /** * @see BaseEmitterBean#getNotificationInfo() */ @Override public MBeanNotificationInfo[] getNotificationInfo() { return new MBeanNotificationInfo[] {NOTIFICATION_INFO}; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy