Java Management Extensions (JMX)
Java Management Extensions (JMX) is a framework that provides a standard way of exposing Java resources, for example, appservers, to a system management infrastructure. Using the JMX framework, a provider can implement functions to list and edit settings.
JMX also includes a notification layer that management applications can use to monitor events such as the startup of an appserver.
JMX key features
- All run-time administration is performed through JMX operations.
- Connectors that are used to connect a JMX agent to a remote JMX-enabled management application.
The following connectors are supported:
- SOAP JMX Connector
- JMX Remote API RMI-IIOP JMX Connector (JSR160RMI)
- RMI-IIOP JMX Connector
- Protocol adapters that provide a management view of the JMX agent through a given protocol. Management applications that connect to a protocol adapter are usually specific to a given protocol.
- The ability to query and update the settings of a run-time object.
- The ability to load, initialize, change, and monitor application components and resources during run-time.
The JMX architecture is structured into three layers:
Instrumentation Dictates how resources can be wrapped within special Java beans, called managed beans (MBeans). Agent Consists of the MBean server and agents, which provide a management infrastructure. The services that are implemented include:
- Event notification
Management Defines how external management applications can interact with the underlying layers in terms of protocols, APIs, and so on. This layer uses an implementation of the distributed services spec (JSR-077), which is not yet part of the J2EE specification.
JMX distributed administration
The JMX architecture fits into the overall distributed administration topology of an ND environment...
Key points of this distributed administration architecture...
- Internal MBeans that are local to the JVM register with the local MBean server.
- External MBeans have a local proxy to their MBean server. The proxy registers with the local MBean server. Using the MBean proxy the local MBean server can pass the message to an external MBean server that is located on:
WAS provides a number of MBeans, each of which has different functions and operations available. For example, an appserver MBean can expose operations such as start and stop. An application MBean can expose operations such as install and uninstall. Some JMX usage scenarios that we can encounter include:
- External programs that are written to control the ND run time and its WebSphere resources by programmatically accessing the JMX API.
- Third-party applications that include custom JMX MBeans as part of the deployed code, supporting the JMX API management of application components and resources.
To obtain the name of a particular MBean:
Jacl...set am [$AdminControl queryNames type=ApplicationManager,process=server1,*]
Jython...am = AdminControl.queryNames('type=ApplicationManager,process=server1,*')
Each WAS runtime MBean can have attributes, operations, and notifications. The complete documentation for each MBean that is supplied with WAS is available in an HTML table that is installed in each copy of WAS v7. Under the main installation directory for WAS ND, there is the web directory. Under the web directory there is another directory called mbeanDocs. In the mbeanDocs directory there are several HTML files; one HTML file for each MBean supplied with WAS. There is also an IBM_HTTP_Server_v735.html file that ties all the individual MBean files together in a top-level navigation tree. Each MBean provides a summary of its attributes, operations, and notifications.
The use of JMX for management functions in WAS provides the following benefits:
- Enables the management of Java applications without significant investment.
- Relies on a core-managed object server that acts as a management agent.
- Java applications can embed a managed object server and make some of its functionality available as one or several MBeans that are registered with the object server.
- Provides a scalable management architecture.
- Every JMX agent service is an independent module that can be plugged into the management agent.
- The API is extensible, allowing new WAS and custom application features to be added and exposed through this management interface.
- Integrates existing management solutions.
- Each process is self-sufficient when it comes to the management of its resources. No central point of control exists. In principle, a JMX-enabled management client can be connected to any managed process and interact with the MBeans that are hosted by that process.
- JMX provides a single, flat, domain-wide approach to system management. Separate processes interact through MBean proxies that support a single management client to seamlessly navigate through a network of managed processes.
- Defines the interfaces that are necessary for management only.
- Provides a standard API for exposing application and admin resources to management tools.
Use the wsadmin scripting objects
Getting started with scripting