JMX Update
description
Transcript of JMX Update
Original work by David Moran
Agenda
OverviewManaged BeansServicesRemote APIJ2EE ManagementImplementationsFuture DirectionsDemo
Original work by David Moran
Benefits
JMX is an API to for managing java applications.
Abstract the instrumentation for management information to a common interface to facilitate integrated management.
Distribute management by moving management functions to the agents.
Real-time deployment of services and updates.Possible to use to manage any application or
device (via JNI or SNMP etc..)
Original work by David Moran
JMX Architecture
Original work by David Moran
MBeanServer
The core of the agent. It provides a registry for MBeans.
Allows clients to discover and execute operations exposed by the MBeans
Makes available various services to facilitate management (I.e. monitoring, scheduling, etc)
Use “ObjectName” class to register objects with the MBeanServer
Original work by David Moran
Instrument your resources as MBeans
MBean stands for “managed bean”MBeans can represent a physical device
or an application You decide which attributes and methods
you want to expose for management.Use design patterns similar to JavaBeansMBeans are exposed in an agent.
Original work by David Moran
Standard MBeans
The simplest MBeanProvides a static representation of a
manageable resource.Implements a management interface of
attributes and methods that a device or application exposes for management.
Original work by David Moran
Notifications
Can be used to inform registered listeners with important events or state changes.
Similar to the java event modelRegister once to all types of notificationsCan supply a filter to say which
notifications it is interested in.
Original work by David Moran
Dynamic MBeans
Useful if the management interface is not stable.
The management interface is defined at runtime.
Developer is responsible for checking the validity of the invocations.
Original work by David Moran
DynamicMBean Interface<<Interface>>
DynamicMBean
getAttribute(String attribute)setAttribute(Attribute attribute)getAttributes (String[] attributes)setAttributes(AttibuteList attributes)getMBeanInfo()invoke(String actionName, Object[] params)
Original work by David Moran
Model MBeans
Most flexible and thus most complicated MBeans
Extension of the dynamic MBeanDevelopers do not write an MBean class The agent must supply the
RequiredModelMBean and the Management Interface is defined outside of the Bean via setter methods.
Features include persistence, logging, and attribute caching.
Original work by David Moran
Connectors/Adapters
A connector makes a Java Management Extensions (JMX) API MBean server accessible to remote Java technology-based clients.
Adapters are similar to connectors except they provide protocol translations (I.e. SNMP, HTML, etc.)
Original work by David Moran
Agent Services
Mlet; (Management Applet) Dynamically adds class files to the server either locally or from a remote location.
Relation Service; Allows the definition of relationships between MBeans
Monitors: Observe MBean attributes and emit notifications when values change.
Timers: Emits user defined notifications at specific times.
Original work by David Moran
JMX Remote APIAdds remote capability to the JMX specMakes the JMX agent accessible from outside the JVM.Developed through the JCP JSR 160Standard support via RMIOptional support via TCP Sockets (JMXMP)API is as close as possible to the API defined by the
JMX API.Also support discovery/lookup services and defines
security between the client and server. As with RMI code must handle communication
exceptions
Original work by David Moran
J2EE Management
An MBean can get data directly from an EJB by invoking its access methods.
An MBean can receive data being pushed from an EJB.
Registers and Deletes an MBean with a JMX agent upon creation and destruction of an EJB
Original work by David Moran
J2EE Management Spec JSR77
This specification represents a model of the J2EE application server, and its subcomponents, that all J2EE-compliant application vendors are required to expose
Requires JMX Part of J2EE 1.4 specSpecifies the MEJB, which is a session bean, to
expose the agent to remote clients.
Original work by David Moran
Available JMX Implementations Sun JDK1.5 JBOSS JBOSS-MX MX4J XMOJO Commercial implementations available;
Weblogic Adventnet XtreamJ WebSphere Tivioli
Original work by David Moran
Future Directions
Use of metadata Persistence Reliable event handling Master-agent/sub-agent functionality Manageability for J2EE™ apps
Original work by David Moran
ExamplesMX4J - Dynamic MBean Example (CacheMBean)
MC4J Console
XMOJO - Model MBean Example (ServerInfo)XMOJO Web based console
JBoss – “XMBean” Example (CacheMBean)
JBoss Web based console & MC4J Console
JDK1.5 Standard MBeans and JConsole
Original work by David Moran
Books
JMX in ActionBenjamin G. Sullins, Mark WhipplePublisher: Manning Publications Company
JMX: Managing J2EE with Java Management ExtensionsMarc Fleury, Juha Lindfors
Publisher: Sams Java and JMX: Building Manageable Systems
Heather Kreger, Ward K. Harold, Leigh Williamson, Ward HaroldPublisher: Pearson Education
Java Management ExtensionsJ. Steven Perry
Publisher: O'Reilly & Associates, Incorporated JMX Programming
Mike JasnowskiPublisher: Wiley, John & Sons, Incorporated
Original work by David Moran
References Sun JMX Page:
http://java.sun.com/products/JavaManagement JMX Forum [email protected] JBOSS MX:
http://www.jboss.org/developers/projects/jboss/jbossmx.jsp
AdventNet: www.adventnet.com http://www.gartner.com/reprints/adventnet/108841.html Interview with Chris Ebro
http://www.theserverside.com/events/library.jsp JSR77 Article
http://www.onjava.com/pub/a/onjava/2002/03/27/jsr77.html Original Slides
http://www.trijug.org/downloads/JMXPresentation.ppt
Original work by David Moran
References continued MX4J Page: http://mx4j.sourceforge.org MC4J Page: http://mc4j.sourceforge.org XMOJO Page: http://www.xmojo.org Jconsole page: http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jconsole.html
Tutorial Page: http://www.admc.com/blaine/howtos/jmx/jmx.html
Article on JMX: http://www.onjava.com/pub/a/onjava/2004/09/29/tigerjmx.html