com.sleepycat.je.jmx
Class JEMonitor

java.lang.Object
  extended by com.sleepycat.je.jmx.JEMonitor
All Implemented Interfaces:
javax.management.DynamicMBean

public class JEMonitor
extends Object
implements javax.management.DynamicMBean

JEMonitor is a JMX MBean which manages a JE environment. The MBean may be installed as is, or used as a starting point for building a MBean which includes JE support. JEMonitor expects another component in the JVM to configure and open the JE environment; it will only access a JE environment that is already active. It is intended for these use cases:

In this MBean, JE management is divided between the JEMonitor class and JEMBeanHelper class. JEMonitor contains an instance of JEMBeanHelper, which knows about JE attributes, operations and notifications. JEMonitor itself has the responsibility of obtaining a temporary handle for the JE environment.

The key implementation choice for a JE MBean is the approach taken for accessing the JE environment. Some of the salient considerations are:

Because of these considerations, JEMonitor avoids holding a JE environment handle in order to not impact the environment lifetime. Any environment handles used are held temporarily.


Constructor Summary
JEMonitor(String environmentHome)
          Instantiate a JEMonitor
 
Method Summary
protected  void closeEnvironment(Environment targetEnv)
          Be sure to close Environments when they are no longer used, because they pin down resources.
 Object getAttribute(String attributeName)
           
 javax.management.AttributeList getAttributes(String[] attributes)
           
protected  Environment getEnvironmentIfOpen()
          This MBean has the policy of only accessing an environment when it has already been configured and opened by other application threads.
 javax.management.MBeanInfo getMBeanInfo()
           
 Object invoke(String actionName, Object[] params, String[] signature)
           
 void setAttribute(javax.management.Attribute attribute)
           
 javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JEMonitor

public JEMonitor(String environmentHome)
          throws javax.management.MBeanException
Instantiate a JEMonitor

Parameters:
environmentHome - home directory of the target JE environment.
Throws:
javax.management.MBeanException
Method Detail

getAttribute

public Object getAttribute(String attributeName)
                    throws javax.management.AttributeNotFoundException,
                           javax.management.MBeanException
Specified by:
getAttribute in interface javax.management.DynamicMBean
Throws:
javax.management.AttributeNotFoundException
javax.management.MBeanException
See Also:
DynamicMBean.getAttribute(java.lang.String)

setAttribute

public void setAttribute(javax.management.Attribute attribute)
                  throws javax.management.AttributeNotFoundException,
                         javax.management.InvalidAttributeValueException,
                         javax.management.MBeanException
Specified by:
setAttribute in interface javax.management.DynamicMBean
Throws:
javax.management.AttributeNotFoundException
javax.management.InvalidAttributeValueException
javax.management.MBeanException
See Also:
DynamicMBean.setAttribute(javax.management.Attribute)

getAttributes

public javax.management.AttributeList getAttributes(String[] attributes)
Specified by:
getAttributes in interface javax.management.DynamicMBean
See Also:
DynamicMBean.getAttributes(java.lang.String[])

setAttributes

public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
Specified by:
setAttributes in interface javax.management.DynamicMBean
See Also:
DynamicMBean.setAttributes(javax.management.AttributeList)

invoke

public Object invoke(String actionName,
                     Object[] params,
                     String[] signature)
              throws javax.management.MBeanException
Specified by:
invoke in interface javax.management.DynamicMBean
Throws:
javax.management.MBeanException
See Also:
DynamicMBean.invoke(java.lang.String, java.lang.Object[], java.lang.String[])

getMBeanInfo

public javax.management.MBeanInfo getMBeanInfo()
Specified by:
getMBeanInfo in interface javax.management.DynamicMBean
See Also:
DynamicMBean.getMBeanInfo()

getEnvironmentIfOpen

protected Environment getEnvironmentIfOpen()
This MBean has the policy of only accessing an environment when it has already been configured and opened by other application threads.

Returns:
a valid Environment or null if the environment is not open

closeEnvironment

protected void closeEnvironment(Environment targetEnv)
                         throws javax.management.MBeanException
Be sure to close Environments when they are no longer used, because they pin down resources.

Parameters:
targetEnv - the open environment. May be null.
Throws:
javax.management.MBeanException


Copyright 2004-2005 Sleepycat, Inc. All Rights Reserved.