"This article will reveal some of JMX's architecture. The specification is detailed in JSR-000003, and is available for download. You can also download a reference implementation with source code. After exploring JMX internals, we will use a JavaServer Page (JSP) to interface with JMX using JBoss and Tomcat."
"Hear Marc Fleury speak at the O'Reilly Conference on Enterprise Java, March 26-29, in Santa Clara, California. Marc will speak on How to Use jBoss, in which he will present the configuration of a J2EE server through JMX at startup time."
"In addition to incorporating JMX into the core support in the J2SE 5.0, a new application has been added in order to provide an example JMX Client application. That application is called JConsole and it is available in the %JAVA_HOME%/bin directory of your J2SE 5.0 installation. JConsole provides a nicely featured application that exercises many of the JMX 1.2 features such as connecting to, monitoring, and managing local and remote JMX-enabled Java applications."
"The Java Management Extensions (JMX) standard is gaining adoption within the J2EE community for the management of applications, as well as application servers and other infrastructure software. JMX makes it possible to manage and monitor applications using a choice of management systems and consoles, including SNMP consoles. It also simplifies the task of making applications manageable, i.e. management instrumentation, and enables improved management of deployed applications in the enterprise."
"Most large companies already have a network management infrastructure deployed. Unfortunately, Java developers have been excluded from leveraging existing network management infrastructure. Levering existing network management infrastructures required Java developers to write their own SNMP agent and then program the application to interact with the agent. The arrival of JMX should finally allow Java developers to leverage network management infrastructure without using proprietary software."
"Enterprise adoption of J2EE as the strategic architecture for server-based applications is on the rise. Increasingly, mission-critical applications are being built and deployed on J2EE infrastructures. This trend is driving demand for better administration, monitoring and management of J2EE applications as well as the underlying network and systems infrastructure. J2EE based solutions will need to deliver on the management needs of large enterprises to be successful. An emerging standard, Java Management Extensions (JMX), will be essential to meeting these needs for J2EE applications."
"You now know how to "JMX enable" your new and existing web applications and securely manage them using MC4J and jManage. Although J2SE 5.0 provides a powerful implementation of the JMX specification, other open source projects such as XMOJO and MX4J provide additional features, such as connecting via web interfaces and more. Interested readers who want to learn more about JMX will find Java Management Extensions by J. Steven Perry a very useful book. For those interested in remote application management, Connecting JMX Clients and Servers by Jeff Hanson is a valuable resource that provides real-world examples."
"MXBeans provide a convenient way to bundle related values without requiring special client configurations to handle the bundles. On the whole, it's best for developers to write MXBeans in cases in which they have previously written Standard MBeans. MXBeans enhance the functionality of the JMX API in the Java SE 6 platform, which is slated for release this year."
"This article shows how to use this framework to not only monitor various backend processes like database, application, and Web servers, but also to invoke corrective actions such as relaunching the process, executing disk cleanup when disk usage thresholds are exceeded, and reporting or logging failures. You can download the framework source and sample client here."
"Early network bridges, protocol converters, and routers were simple dedicated hardware units typically configured through a terminal directly connected to a serial port on the unit itself. Configuration commands were usually used to enable or disable ports or change characteristics of the protocols supported by the device. The number of configurable parameters on these "black boxes" was limited, and the serial terminal interface was often cryptic and intelligible only to highly trained network operators, as shown in Figure 1:"
"As of Java 5.0, the class library and JVM provide a comprehensive management and monitoring infrastructure -- JMX. JMX is a standardized means for providing a remotely accessible management interface and is an easy way to add a flexible and powerful management interface to an application. JMX components, called managed beans (MBeans), are JavaBeans that provide accessors and business methods pertaining to the management of an entity. Each managed entity (which could be the entire application or a service within the application) instantiates an MBean and registers it using a human-readable name. A JMX-enabled application relies on an MBeanServer, which acts as a container for MBeans, providing remote access, namespace management, and security services. On the client side, the jconsole tool can act as a universal JMX client. Taken together, platform support for JMX dramatically reduces the effort required for an application to support an external management interface."
"Now that we have added logic to support access of the single attribute and two operations, we can add the mechanism to expose them to management agents. To accomplish this, we add JMX MBean (managed bean) support to our ClickMeter application. As we learned in Part 1, there are at least two different major styles of implementation for MBeans, as shown in Table 4:"
"Apache Geronimo, which is built on a general-purpose Inversion of Control (IoC) kernel that supports the JMX framework, oversees a collection of managed components called Geronimo Beans (GBeans). Geronimo was created with JMX as the underlying kernel infrastructure, so it shares several similarities with JMX Managed Beans (MBeans). This structure has changed slightly over time, because using JMX as the framework for locating objects, interobject communication, method interception, and so on was seen as a stretch for JMX. However, the legacy of JMX is still evident in the Geronimo architecture, especially in the GBean framework."
"Spring's IOC makes it easy to wire object dependencies externally and this advantage is easily leveraged in Spring's own architecture. The IOC philosophy of keeping object dependencies injectable makes it a breeze to add, replace, or supplement the behavior of objects, including Spring's JMX support. For the remainder of the article, I'll focus on extending Spring JMX for more fine-grained application management without cluttering up application code or interfering with Spring's inherent flexibility."
"JMX is a popular new standard extension to the Java platform that enables devices, applications, and services to be managed, controlled, and monitored through modern Network Management Systems (NMS). To gain better insight into how JMX facilitates the management of software applications/services, we will attempt to monitor our ClickMeter application (developed in part 2 of this series) by using a real-life open source NMS, called OpenNMS. I have selected OpenNMS for its wide open availability and simplicity in design. You can also apply the integration techniques described with other NMS products. Before we work with OpenNMS specifics, let's look at the common design elements and operational model that most NMS products share."