<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Java_Management_Extensions</id>
	<title>Java Management Extensions - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Java_Management_Extensions"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Java_Management_Extensions&amp;action=history"/>
	<updated>2026-04-07T19:51:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=Java_Management_Extensions&amp;diff=331446&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Java_Management_Extensions&amp;diff=331446&amp;oldid=prev"/>
		<updated>2025-08-11T06:46:28Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Java technology}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Java Management Extensions&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;JMX&amp;#039;&amp;#039;&amp;#039;) is a [[Java platform|Java]] technology that supplies tools for managing and monitoring [[Application software|application]]s, system objects, devices (such as [[computer printer|printers]]) and service-oriented networks. Those resources are represented by objects called MBeans (for &amp;#039;&amp;#039;[[#Managed beans|Managed Bean]]&amp;#039;&amp;#039;). In the API, [[Class (computer science)|class]]es can be dynamically loaded and instantiated.&lt;br /&gt;
Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.&amp;lt;ref&amp;gt;{{cite web |title=Overview of the Java Dynamic Management Kit |url=https://docs.oracle.com/cd/E19698-01/816-7607/6mdjpi6v1/index.html |website=docs.oracle.com |access-date=January 12, 2021}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JSR 003&amp;lt;ref&amp;gt;[https://www.jcp.org/en/jsr/detail?id=3 JSR 003: JavaTM Management Extensions (JMXTM) Specification]&amp;lt;/ref&amp;gt; of the [[Java Community Process]] defined JMX 1.0, 1.1 and 1.2. JMX 2.0 was being developed under JSR 255, but this JSR was subsequently withdrawn.&amp;lt;ref&amp;gt;[http://www.jcp.org/en/jsr/detail?id=255 JSR 255: JavaTM Management Extensions (JMXTM) Specification, version 2.0]&amp;lt;/ref&amp;gt; The JMX Remote API 1.0 for remote management and monitoring is specified by JSR 160.&amp;lt;ref&amp;gt;[https://www.jcp.org/en/jsr/detail?id=160 JSR 160: JavaTM Management Extensions (JMX) Remote API]&amp;lt;/ref&amp;gt; An extension of the JMX Remote API for Web Services was being developed under JSR 262.&amp;lt;ref&amp;gt;&lt;br /&gt;
[http://www.jcp.org/en/jsr/detail?id=262 JSR 262: Web Services Connector for Java Management Extensions (JMX) Agents]&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adopted early on by the [[Java Platform, Enterprise Edition|J2EE]] community, JMX has been a part of [[Java Platform, Standard Edition|J2SE]] since version 5.0. &amp;quot;JMX&amp;quot; is a trademark of [[Oracle Corporation]].&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
[[File:JMX Architecture.svg|thumb|400px|JMX architecture]]&lt;br /&gt;
&lt;br /&gt;
JMX uses a three-level architecture:&lt;br /&gt;
# The &amp;#039;&amp;#039;Probe&amp;#039;&amp;#039; level – also called the &amp;#039;&amp;#039;Instrumentation&amp;#039;&amp;#039; level – contains the probes (called [[#Managed beans|MBeans]]) [[Instrumentation (computer programming)|instrumenting]] the resources&lt;br /&gt;
# The &amp;#039;&amp;#039;Agent&amp;#039;&amp;#039; level, or MBeanServer – the core of JMX. It acts as an intermediary between the MBean and the applications.&lt;br /&gt;
# The &amp;#039;&amp;#039;Remote Management&amp;#039;&amp;#039; level enables remote applications to access the MBeanServer through connectors and adaptors. A connector provides full remote access to the MBeanServer API using various communication ([[Java remote method invocation|RMI]], [[IIOP]], [[Java Message Service|JMS]], [[List of web service specifications|WS-*]] …), while an adaptor adapts the API to another protocol ([[Simple Network Management Protocol|SNMP]], …) or to Web-based GUI ([[HTML]]/[[HTTP]], [[Wireless Markup Language|WML]]/[[HTTP]], …).&lt;br /&gt;
&lt;br /&gt;
Applications can be generic consoles (such as [[JConsole]]&amp;lt;ref&amp;gt;[https://java.sun.com/developer/technicalArticles/J2SE/jconsole.html Using JConsole to Monitor Applications]&amp;lt;/ref&amp;gt; and [[MC4J]]&amp;lt;ref&amp;gt;{{Cite web |url=http://mc4j.org/confluence/display/mc4j/Home |title=The MC4J project creates management software for J2EE application servers and other Java applications. |access-date=2006-08-27 |archive-url=https://web.archive.org/web/20070323111823/http://www.mc4j.org/confluence/display/mc4j/Home |archive-date=2007-03-23 |url-status=dead }}&amp;lt;/ref&amp;gt;) or domain-specific (monitoring) applications. External applications can interact with the MBeans through the use of JMX connectors and protocol adapters. Connectors serve to connect an agent with a remote JMX-enabled management application. This form of communication involves a connector in the JMX agent and a connector client in the management application.&lt;br /&gt;
&lt;br /&gt;
The [[Java Platform, Standard Edition]] ships with one connector, the &amp;#039;&amp;#039;&amp;#039;RMI connector&amp;#039;&amp;#039;&amp;#039;, which uses the Java Remote Method Protocol that is part of the [[Java remote method invocation]] API. This is the connector which most management applications use.&lt;br /&gt;
&lt;br /&gt;
Protocol adapters provide a management view of the JMX agent through a given protocol. Management applications that connect to a protocol adapter are usually specific to the given protocol.&lt;br /&gt;
&lt;br /&gt;
== Managed beans ==&lt;br /&gt;
A &amp;#039;&amp;#039;&amp;#039;managed bean&amp;#039;&amp;#039;&amp;#039; – sometimes simply referred to as an &amp;#039;&amp;#039;MBean&amp;#039;&amp;#039; – is a type of [[JavaBean]], created with [[dependency injection]]. Managed Beans are particularly used in the Java Management Extensions technology – but with Java EE 6 the specification provides for a more detailed meaning of a managed bean.&lt;br /&gt;
&lt;br /&gt;
The MBean represents a resource running in the [[Java virtual machine]], such as an application or a Java EE technical service (transactional monitor, JDBC driver, etc.). They can be used for collecting statistics on concerns like performance, resources usage, or problems (pull); for getting and setting application configurations or properties (push/pull); and notifying events like faults or state changes (push).&lt;br /&gt;
&lt;br /&gt;
Java EE 6 provides that a managed bean is a bean that is implemented by a Java class, which is called its bean class. A top-level Java class is a managed bean if it is defined to be a managed bean by any other Java EE technology specification (for example, the [[JavaServer Faces]] technology specification), or if it meets all of the following conditions:&lt;br /&gt;
# It is not a non-static [[inner class]].&lt;br /&gt;
# It is a concrete class, or is annotated &amp;lt;code&amp;gt;@Decorator&amp;lt;/code&amp;gt;.&lt;br /&gt;
# It is not annotated with an EJB component-defining annotation or declared as an EJB bean class in &amp;lt;code&amp;gt;ejb-jar.xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
No special declaration, such as an annotation, is required to define a managed bean.&lt;br /&gt;
&lt;br /&gt;
A MBean can notify the MBeanServer of its internal changes (for the attributes) by implementing the &amp;lt;code&amp;gt;javax.management.NotificationEmitter&amp;lt;/code&amp;gt;. The application interested in the MBean&amp;#039;s changes registers a listener (&amp;lt;code&amp;gt;javax.management.NotificationListener&amp;lt;/code&amp;gt;) to the MBeanServer. Note that JMX does not guarantee that the listeners will receive all notifications.&amp;lt;ref&amp;gt;[https://www.oracle.com/technetwork/java/javase/tech/best-practices-jsp-136021.html Java Management Extensions (JMX) – Best Practices]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Types===&lt;br /&gt;
There are two basic types of MBean:&lt;br /&gt;
* &amp;#039;&amp;#039;Standard MBeans&amp;#039;&amp;#039; implement a business interface containing setters and getters for the attributes and the operations (i.e., methods).&lt;br /&gt;
* &amp;#039;&amp;#039;Dynamic MBeans&amp;#039;&amp;#039; implement the &amp;lt;code&amp;gt;javax.management.DynamicMBean&amp;lt;/code&amp;gt; interface that provides a way to list the attributes and operations, and to get and set the attribute values.&lt;br /&gt;
&lt;br /&gt;
Additional types are &amp;#039;&amp;#039;Open MBeans&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Model MBeans&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Monitor MBeans&amp;#039;&amp;#039;. &amp;#039;&amp;#039;Open MBeans&amp;#039;&amp;#039; are dynamic MBeans that rely on the basic data types. They are self-explanatory and more user-friendly. &amp;#039;&amp;#039;Model MBeans&amp;#039;&amp;#039; are dynamic MBeans that can be configured during runtime. A generic MBean class is also provided for dynamically configuring the resources during program runtime.&lt;br /&gt;
&lt;br /&gt;
A MXBean (&amp;#039;&amp;#039;Platform MBean&amp;#039;&amp;#039;) is a special type of MBean that [[Reification (computer science)|reifies]] [[Java virtual machine]] subsystems such as [[garbage collection (computer science)|garbage collection]], [[JIT compilation]], [[memory pools]], [[Thread (computer science)|multi-threading]], etc.&lt;br /&gt;
&lt;br /&gt;
A MLet (&amp;#039;&amp;#039;Management applet&amp;#039;&amp;#039;) is a utility MBean to load, instantiate and register MBeans in a MBeanServer from an [[XML]] description. The format of the XML descriptor is:&amp;lt;ref&amp;gt;&lt;br /&gt;
{{cite news &lt;br /&gt;
| url= https://java.sun.com/j2se/1.5.0/docs/api/javax/management/loading/MLet.html &lt;br /&gt;
| title= MLet (Java 2 Platform SE 5.0) | publisher= [[Sun Microsystems]] &lt;br /&gt;
| access-date= 2008-06-22&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;MLET CODE = &amp;#039;&amp;#039;class&amp;#039;&amp;#039; | OBJECT = &amp;#039;&amp;#039;serfile&amp;#039;&amp;#039;&lt;br /&gt;
   ARCHIVE = &amp;#039;&amp;#039;archiveList&amp;#039;&amp;#039;&lt;br /&gt;
   [CODEBASE = &amp;#039;&amp;#039;codebaseURL&amp;#039;&amp;#039;]&lt;br /&gt;
   [NAME = &amp;#039;&amp;#039;objectName&amp;#039;&amp;#039;]&lt;br /&gt;
   [VERSION = &amp;#039;&amp;#039;version&amp;#039;&amp;#039;]&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
   [arglist]&lt;br /&gt;
 &amp;lt;/MLET&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
&lt;br /&gt;
JMX is supported at various levels by different vendors:&lt;br /&gt;
&lt;br /&gt;
* JMX is supported by Java [[application server]]s such as OpenCloud Rhino Application Server [https://web.archive.org/web/20090719200806/http://www.opencloud.com/products/rhino-application-server/real-time-application-server/], [[JBoss]], JOnAS, [[WebSphere Application Server]], [[WebLogic]], [[SAP NetWeaver Application Server]], [[Oracle Application Server 10g]] and [[Sun Java System Application Server]].&lt;br /&gt;
* JMX is supported by the UnboundID Directory Server, Directory [[Proxy server|Proxy Server]], and Synchronization Server.&amp;lt;ref&amp;gt;[https://www.unboundid.com/solutions/enterprise/why-unboundid-for-eds.php UnboundID Corp.] {{webarchive|url=https://web.archive.org/web/20120306163214/http://www.unboundid.com/solutions/enterprise/why-unboundid-for-eds.php |date=2012-03-06 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Systems management]] tools that support the protocol include [[Empirix]] OneSight, GroundWork Monitor, [[Hyperic]], [[OpenView|HP OpenView]], [[IBM Director]], ITRS Geneos, [[Nimsoft|Nimsoft NMS]], [[OpenNMS]],&amp;lt;ref&amp;gt;{{Cite web|url=http://www.opennms.org/wiki/Category:JMX|title = Home}}&amp;lt;/ref&amp;gt; [[Zabbix]], [[Zenoss Core]], and Zyrion, [[SolarWinds]], [https://www.idera.com/it-infrastructure-management-and-monitoring/application-performance-monitoring-tools?gclid=cih0ji_xum8cfy48gqodagem9q Uptime Infrastructure Monitor], and LogicMonitor.&amp;lt;ref&amp;gt;{{cite web |url=https://www.logicmonitor.com/support/logicmodules/datasources/data-collection-methods/jmx-data-collection/ |title=JMX Data Collection |access-date=2020-11-20 |website=www.logicmonitor.com }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* JMX is also supported by [[Java Servlet|servlet containers]] such as [[Apache Tomcat]].&amp;lt;ref&amp;gt;[http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html Apache Tomcat 6.0: Monitoring and Managing Tomcat] (Tomcat manual)&amp;lt;/ref&amp;gt; &amp;amp; [[Jetty (web server)]]&lt;br /&gt;
* [[MX4J]] [https://mx4j.sourceforge.net/] is Open Source JMX for Enterprise Computing.&lt;br /&gt;
* [[jManage]] [http://www.jmanage.org] {{Webarchive|url=https://web.archive.org/web/20200803230223/http://www.jmanage.org/ |date=2020-08-03 }} is an open source enterprise-grade JMX Console with Web and command-line interfaces.&lt;br /&gt;
* [[MC4J]] [https://web.archive.org/web/20150321180823/http://mc4j.org/] is an open source visual console for connecting to servers supporting JMX&lt;br /&gt;
* [[snmpAdaptor4j]] [https://snmpadaptor4j.sourceforge.net/] is an open source providing a simple access to MBeans via the SNMP protocol.&lt;br /&gt;
* [https://github.com/patric-r/jvmtop jvmtop] is a lightweight open source JMX monitoring tool for the command-line&lt;br /&gt;
* [[Prometheus (software)|Prometheus]] can ingest JMX data via the JMX exporter&amp;lt;ref&amp;gt;{{Cite web|url=https://github.com/prometheus/jmx_exporter|title=JMX Exporter|website=[[GitHub]]|date=14 February 2022}}&amp;lt;/ref&amp;gt; which exposes metrics in Prometheus format.&lt;br /&gt;
* [[New Relic]]&amp;#039;s on-host infrastructure agent collects JMX data&amp;lt;ref&amp;gt;{{Cite web |title=JMX monitoring integration {{!}} New Relic Documentation |url=https://docs.newrelic.com/install/jmx/ |access-date=2025-01-13 |website=docs.newrelic.com}}&amp;lt;/ref&amp;gt; which is shown in various charts in its [[Observability (software)|observability]] platform&amp;#039;s dashboard.&amp;lt;ref&amp;gt;{{Cite web |title=JVMs page (Java): View app server metrics from JMX {{!}} New Relic Documentation |url=https://docs.newrelic.com/docs/apm/agents/java-agent/features/jvms-page-java-view-app-server-metrics-jmx/ |access-date=2025-01-13 |website=docs.newrelic.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |title=Introduction to New Relic for Java {{!}} New Relic Documentation |url=https://docs.newrelic.com/docs/apm/agents/java-agent/getting-started/introduction-new-relic-java/ |access-date=2025-01-13 |website=docs.newrelic.com}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [https://jolokia.org/ Jolokia] is a Java agent that exposes JMX over HTTP for easy access from non-Java systems.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Jini]]&lt;br /&gt;
* [[Network management]]&lt;br /&gt;
* [[Simple Network Management Protocol]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
=== Articles ===&lt;br /&gt;
* &amp;quot;[http://www.onjava.com/pub/a/onjava/2001/02/01/jmx.html Enabling Component Architectures with JMX]&amp;quot; by Marc Fleury and Juha Lindfors&lt;br /&gt;
* &amp;quot;[http://www.onjava.com/pub/a/onjava/2002/03/27/jsr77.html Introducing A New Vendor-Neutral J2EE Management API]&amp;quot; by Andreas Schaefer&lt;br /&gt;
* &amp;quot;Java in the management sphere&amp;quot; by Max Goff 1999&lt;br /&gt;
*# [https://www.infoworld.com/article/2076514/java-in-the-management-sphere--part-1.html Oct 20]&lt;br /&gt;
*# [https://www.infoworld.com/article/2076536/java-in-the-management-sphere--part-2.html Nov 20]&lt;br /&gt;
*# [https://www.infoworld.com/article/2076552/java-in-the-management-sphere--part-3.html Dec 29]&lt;br /&gt;
* [https://jboss.org/index.html?module=html&amp;amp;amp;op=userdisplay&amp;amp;amp;id=developers/projects/jboss/jbossmx JMX/JBoss] – The [[microkernel]] design&lt;br /&gt;
* &amp;quot;[https://www.infoworld.com/article/2071819/manage-your-jmx-enabled-applications-with-jmanage-1-0.html Manage your JMX-enabled applications with jManage 1.0]&amp;quot; by Rakesh Kalra Jan 16, 2006&lt;br /&gt;
* &amp;quot;[http://java.sys-con.com/read/37797.htm Managing J2EE Systems with JMX and JUnit] {{Webarchive|url=https://web.archive.org/web/20080526180619/http://java.sys-con.com/read/37797.htm |date=2008-05-26 }}&amp;quot; by Lucas McGregor&lt;br /&gt;
* [https://java.sun.com/j2se/1.5.0/docs/guide/management/overview.html Sun Java Overview of Monitoring and Management]&lt;br /&gt;
* [https://download.oracle.com/javaee/6/tutorial/doc/gjfzi.html The Java EE 6 Tutorial: About managed beans]&lt;br /&gt;
&lt;br /&gt;
=== Books ===&lt;br /&gt;
* Benjamin G Sullins, &amp;#039;&amp;#039;Mark B Whipple : JMX in Action: You will also get your first JMX application up and running&amp;#039;&amp;#039;, [[Manning Publications]] Co. 2002, {{ISBN|1-930110-56-1}}&lt;br /&gt;
* [[J. Steven Perry]]: &amp;#039;&amp;#039;Java Management Extensions&amp;#039;&amp;#039;, O&amp;#039;Reilly, {{ISBN|0-596-00245-9}}&lt;br /&gt;
* [[Jeff Hanson]]: &amp;#039;&amp;#039;Connecting JMX Clients and Servers: Understanding the Java Management Extensions&amp;#039;&amp;#039;, APress L. P., {{ISBN|1-59059-101-1}}&lt;br /&gt;
* [[Marc Fleury]], [[Juha Lindfors]]: &amp;#039;&amp;#039;JMX: Managing J2EE with Java Management Extensions&amp;#039;&amp;#039;, Sams Publishing, {{ISBN|0-672-32288-9}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://java.sun.com/javase/6/docs/technotes/guides/jmx/JMX_1_4_specification.pdf JMX 1.4] (JMX 1.4, part of Java 6)&lt;br /&gt;
* [https://www.jboss.org/community/docs/DOC-10941 JMX at JBoss.com]&lt;br /&gt;
* [http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html JMX on www.oracle.com]&lt;br /&gt;
* [http://jcp.org/en/jsr/detail?id=255 JSR 255] (JMX 2.0)&lt;br /&gt;
* [http://jcp.org/en/jsr/detail?id=3 JSR 3] (JMX 1.0, 1.1, and 1.2)&lt;br /&gt;
{{Java (software platform)}}&lt;br /&gt;
{{Jakarta EE}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Categories --&amp;gt;&lt;br /&gt;
[[Category:Java APIs]]&lt;br /&gt;
[[Category:Java enterprise platform|Management Extensions]]&lt;br /&gt;
[[Category:Java specification requests|Management Extensions]]&lt;br /&gt;
[[Category:Network management]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>