Transcript JMX
JMX Update
Scott Molenaar
[email protected]
11/08/2004
Original work by David Moran
Original Slides Created by
David Moran
[email protected]
10/20/03
Original work by David Moran
Agenda
Overview
Managed Beans
Services
Remote API
J2EE Management
Implementations
Future Directions
Demo
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 JavaBeans
MBeans are exposed in an agent.
Original work by David Moran
Standard MBeans
The simplest MBean
Provides 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 model
Register once to all types of notifications
Can 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 MBean
Developers 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 technologybased 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 API
Adds remote capability to the JMX spec
Makes the JMX agent accessible from outside
the JVM.
Developed through the JCP JSR 160
Standard support via RMI
Optional 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 spec
Specifies 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
Examples
MX4J - 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 Action
Benjamin G. Sullins, Mark Whipple
Publisher: Manning Publications Company
JMX: Managing J2EE with Java Management Extensions
Marc Fleury, Juha Lindfors
Publisher: Sams
Java and JMX: Building Manageable Systems
Heather Kreger, Ward K. Harold, Leigh Williamson,
Ward Harold
Publisher: Pearson Education
Java Management Extensions
J. Steven Perry
Publisher: O'Reilly & Associates, Incorporated
JMX Programming
Mike Jasnowski
Publisher: 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/jbos
smx.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/t
ooldocs/share/jconsole.html
Tutorial Page:
http://www.admc.com/blaine/howtos/jmx
/jmx.html
Article on JMX:
http://www.onjava.com/pub/a/onjava/20
Original work by David Moran
04/09/29/tigerjmx.html