How Do Dynamic MBeans Work?
Like standard MBeans, dynamic MBeans must be created and registered with the MBean server. When the MBean server is asked to register a dynamic MBean, however, no introspection is performed. Recall that it is the strict application of the standard MBean design patterns (discussed in Chapter 2)—enforced through introspection—that tells the MBean server what management interface is exposed on an MBean. So, how does a dynamic MBean expose its management interface?
Instead of using a Java interface with the name
“MBean” on it, dynamic MBeans use
metadata classes to expose their management interfaces. They make
that metadata available through an interface called
DynamicMBean
, which must be implemented by all
dynamic MBeans. This interface is shown in Example 3-1.
Example 3-1. The DynamicMBean interface
package javax.management;
public interface DynamicMBean {
public Object getAttribute(String attribute)
throws AttributeNotFoundException, MBeanException, ReflectionException;
public void setAttribute(Attribute attribute)
throws AttributeNotFoundException, InvalidAttributeValueException,
MBeanException, ReflectionException;
public AttributeList getAttributes(String[] attributes);
public AttributeList setAttributes(AttributeList attributes);
public Object invoke(String actionName, Object params[], String signature[])
throws MBeanException, ReflectionException;
public MBeanInfo getMBeanInfo( );
}Essentially, the DynamicMBean interface provides a
way for a
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access