Title: JMX
1JMX
- David Moran
- dmoran_at_nc.rr.com
- 10/20/03
2Agenda
- Overview
- Managed Beans
- Services
- Remote API
- J2EE Management
- Implementations
- Future Directions
- Demo
3Benefits
- 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..)
4JMX Architecture
Management Layer
Agent Layer (MBeanServer)
RMI Connector
Agent Services Notifications Monitors/Timers MLET
Java Client
HTML Adapter
Web Browser
SNMP Adapter
Instrumentation Layer
SNMP Manager (HP OpenView)
SNMP
MBeans
RMI
Java Application
Manageable Device
Application Server
5MBeanServer
- 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
6Instrument 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.
7Standard 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.
8Notifications
- 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.
9Dynamic 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.
10DynamicMBean Interface
ltltInterfacegtgt DynamicMBean
getAttribute(String attribute) setAttribute(Attrib
ute attribute) getAttributes (String
attributes) setAttributes(AttibuteList
attributes) getMBeanInfo() invoke(String
actionName, Object params)
11Model 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.
12Connectors/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.)
13Agent 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.
14JMX 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
15J2EE 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
16J2EE 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.
17Available 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
- Currently working on Remoting API
18Future Directions
- Use of metadata
- Persistence
- Reliable event handling
- Master-agent/sub-agent functionality
- Manageability for J2EE apps
19DemoLogin Monitor
Login Screen
Management Console
User
Web Browser Talks to MBeanServer
User Login (increases login counter)
UserInfoMgr MBean
UserInfo Entity Bean
Jboss Application Server
Jmx Agent
Retrieve number of Logins Enable/Disable login
permissions
20Books
- 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
SystemsHeather Kreger, Ward K. Harold,
Leigh Williamson, Ward HaroldPublisher Pearson
Education - Java Management ExtensionsJ. Steven Perry
- Publisher O'Reilly Associates,
Incorporated - JMX ProgrammingMike JasnowskiPublisher Wiley,
John Sons, Incorporated
21References
- Sun JMX Page http//java.sun.com/products/JavaMan
agement - JMX Forum jmx-forum_at_java.sun.com
- JBOSS MX http//www.jboss.org/developers/projects
/jboss/jbossmx.jsp - AdventNet www.adventnet.com
- http//www.gartner.com/reprints/adventnet/108841.h
tml - Interview with Chris Ebro http//www.theserverside
.com/events/library.jsp - JSR77 Aricle
- http//www.onjava.com/pub/a/onjava/2002/03/27/jsr7
7.html