Java Management Extensions (JMX)
Application is running for a long time suddenly started performing not good. We do not have any clue at this time. Idea started early 1998, there should be a way to interact the application from a local/remote vM to monitor and maintain the resource. For example, HeapSize almost reached maxSize and full collector not yet triggered, in this time we could make a request for GC from our application. This may not be the right solution, however, we can avoid OOM Exception.
In clustered environment, application may share the same configuration. User may update property in one node, which has to be replicated in other environment in flexible way. We cannot use tightly coupled model, since in failover scenario this will cause more pain to us. JMX Remote API, solves this problem by Change notification mechanism.
- JSR 3 - Java Management Extensions
- JSR 160 - JMX Remote API
- JSR 255 - JMX 2.0
Typical uses of the JMX technology include:
- Consulting and changing application configuration
- Accumulating statistics about application behavior and making them available
- Notifying of state changes and erroneous conditions.
The resources are instrumented as JAVA Object, known as Managed Beans(MBean). MBeans and its services sare registered in a Object Server, known as MBean Server or JMX agents. JMX Connectors helps agent to connect remote VM.
- enables Java applications to be managed without heavy investment
- provides a standard way to manage Java technology-based applications, systems, and networks
- can be used for out-of-the-box management of the Java VM
- provides a scalable, dynamic management architecture
- leverages existing standard Java technologies
- integrates easily with existing management solutions and emerging technologies. JMX solutions can use lookup and discovery services and protocols such as JiniTM network technology and the Service Location Protocol (SLP).