JMX - Triangle Java Users Group
Download
Report
Transcript JMX - Triangle Java Users Group
JMX
David Moran
[email protected]
10/20/03
Agenda
Overview
Managed Beans
Services
Remote API
J2EE Management
Implementations
Future Directions
Demo
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.
Realtime deployment of services and updates.
Possible to use to manage any application or
device (via JNI or SNMP etc..)
JMX Architecture
Agent Layer (MBeanServer)
Agent Services
RMI
Connector
Notifications
Monitors/Timers
MLET
HTML
Adapter
SNMP
Adapter
Instrumentation Layer
MBeans
Java Application
SNMP
RMI
Application
Server
Manageable
Device
Management
Layer
Java
Client
Web
Browser
SNMP Manager
(HP OpenView)
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
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.
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.
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.
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.
DynamicMBean Interface
<<Interface>>
DynamicMBean
getAttribute(String attribute)
setAttribute(Attribute attribute)
getAttributes (String[] attributes)
setAttributes(AttibuteList attributes)
getMBeanInfo()
invoke(String actionName, Object[] params)
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.
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.)
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.
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
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
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.
Available JMX Implementations
Sun JMX 1.2.1 and Remote API 1.0 RI
JDMK value added product for purchase.
JBOSS JBOSS-MX
JMX Compliant Implementation available
MicroKernal Application architecture is based on
JMX Agent technology.
NetManage
Various products for sale to help build and manage
applications via JMX
MX4J
OpenSource Implemenation of JMX 1.1
Currently working on 1.2
Future Directions
Use of metadata
Persistence
Reliable event handling
Master-agent/sub-agent functionality
Manageability for J2EE™ apps
Demo
Login Monitor
Login Screen
Management
Console
User
User Login
(increases login counter)
UserInfo
Entity Bean
Jboss Application Server
Web Browser
Talks to MBeanServer
UserInfoMgr
MBean
Jmx Agent
Retrieve number of Logins
Enable/Disable login permissions
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
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 Aricle
http://www.onjava.com/pub/a/onjava/2002/03/27/jsr77.html