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