This site hosts historical documentation. Visit www.terracotta.org for recent product information.
JMX creates a standard way of instrumenting classes and making them available to a management and monitoring infrastructure. This provides an alternative to the Terracotta Management Console for custom or third-party tools.
The net.sf.ehcache.management
package contains MBeans and a ManagementService
for JMX management of BigMemory Go. It is in a separate package so that JMX libraries are only required if you wish to use it - there is no leakage of JMX dependencies
into the core Ehcache package.
Use net.sf.ehcache.management.ManagementService.registerMBeans(...)
static method
to register a selection of MBeans to the MBeanServer provided to the method. If you wish to monitor Ehcache but not use JMX, just use the existing public methods on Cache
and CacheStatistics
.
The Management package is illustrated in the follwing image.
BigMemory Go uses Standard MBeans. MBeans are available for the following:
All MBean attributes are available to a local MBeanServer. The CacheManager MBean allows traversal to its collection of Cache MBeans. Each Cache MBean likewise allows traversal to its CacheConfiguration MBean and its CacheStatistics MBean.
The Remote API allows connection from a remote JMX Agent to an MBeanServer via an MBeanServerConnection
.
Only Serializable
attributes are available remotely. The following Ehcache MBean attributes are available remotely:
Most attributes use built-in types. To access all attributes, you need to add ehcache.jar to the remote JMX client's
classpath. For example, jconsole -J-Djava.class.path=ehcache.jar
.
ObjectName
naming schemeThe ManagementService
class is the API entry point.
There is only one method, ManagementService.registerMBeans
which is used to initiate JMX registration
of a CacheManager's instrumented MBeans.
The ManagementService
is a CacheManagerEventListener
and
is therefore notified of any new Caches added or disposed and updates the MBeanServer appropriately.
Once initiated the MBeans remain registered in the MBeanServer until the CacheManager shuts down, at which time
the MBeans are deregistered. This behaviour ensures correct behavior in application servers where applications are
deployed and undeployed.
/**
* This method causes the selected monitoring options to be be registered
* with the provided MBeanServer for caches in the given CacheManager.
*
* While registering the CacheManager enables traversal to all of the other
* items,
* this requires programmatic traversal. The other options allow entry points closer
* to an item of interest and are more accessible from JMX management tools like JConsole.
* Moreover CacheManager and Cache are not serializable, so remote monitoring is not
* possible * for CacheManager or Cache, while CacheStatistics and CacheConfiguration are.
* Finally * CacheManager and Cache enable management operations to be performed.
*
* Once monitoring is enabled caches will automatically added and removed from the
* MBeanServer * as they are added and disposed of from the CacheManager. When the
* CacheManager itself * shutsdown all registered MBeans will be unregistered.
*
* @param cacheManager the CacheManager to listen to
* @param mBeanServer the MBeanServer to register MBeans to
* @param registerCacheManager Whether to register the CacheManager MBean
* @param registerCaches Whether to register the Cache MBeans
* @param registerCacheConfigurations Whether to register the CacheConfiguration MBeans
* @param registerCacheStatistics Whether to register the CacheStatistics MBeans
*/
public static void registerMBeans(
net.sf.ehcache.CacheManager cacheManager,
MBeanServer mBeanServer,
boolean registerCacheManager,
boolean registerCaches,
boolean registerCacheConfigurations,
boolean registerCacheStatistics) throws CacheException {
This example shows how to register CacheStatistics in the JDK platform MBeanServer, which works with the JConsole management agent.
CacheManager manager = new CacheManager();
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ManagementService.registerMBeans(manager, mBeanServer, false, false, false, true);
CacheStatistics MBeans are then registered. CacheStatistics MBeans in JConsole
Collection of cache statistics is not entirely free of overhead, however, the statistics API switches on/off automatically according to usage. If you need few statistics, you incur little overhead; on the other hand, as you use more statistics, you can incur more. Statistics are off by default.