Chapter 3. Dynamic MBeans

Standard MBeans are well suited for management interfaces that are relatively static. However, if a management interface must be defined for an existing resource, is likely to evolve over time, or for some other reason needs to be exposed at runtime, JMX provides an interface that allows you to do just that. In this chapter, we will start by looking at the reasons for instrumenting application code as dynamic MBeans. Then we will look at the metadata classes that are used to define the management interface of a dynamic MBean. Next, we will explore ways to implement the DynamicMBean interface and show how the MBeanInfo metadata class is critical in making dynamic MBeans work. At the end of the chapter, we will examine the management interface inheritance patterns that are used with dynamic MBeans.

Tip

This chapter assumes that you either are already familiar with standard MBeans or have read Chapter 2.

Why Use Dynamic MBeans?

The main reason to use dynamic MBeans is to more easily instrument existing code that is written in a manner that conflicts with the standard MBean design patterns we discussed in Chapter 2. The dynamic MBean interface is determined not through introspection, but rather through a method call on the dynamic MBean itself. This method, called getMBeanInfo( ) , returns information about the management interface and is defined on the DynamicMBean interface; it is the portal through which a management application views what has been exposed ...

Get Java Management Extensions now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.