Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EclipseLink/DesignDocs/235168
Contents
- 1 Design Specification: JMX MBean Support
- 1.1 Document History
- 1.2 Project overview
- 1.3 Concepts
- 1.4 References
- 1.5 Requirements
- 1.6 Design Constraints
- 1.7 Use Cases
- 1.8 Design / Functionality
- 1.9 Testing
- 1.10 API
- 1.11 GUI
- 1.12 Config files
- 1.13 Documentation
- 1.14 Open Issues
- 1.15 Decisions
- 1.16 Future Considerations
Design Specification: JMX MBean Support
Bug# 235168 JMX MBean Tutorial for WebLogic
Document History
Date | Author | Version Description & Notes |
---|---|---|
2008-06-23 | Michael O | 0.1 Starting Draft |
Project overview
This enhancement will add JMX MBean support to EclipseLink 1.0 by exposing select runtime and development attributes and methods to custom JMX client code or JConsole.
Concepts
Based on JMX 1.2 and JMX Remote API 1.0
References
ELUG Documentation JMX MBeans in WebLogic 10
Requirements
- R1: Enable JMX MBean Support for WebLogic
- R2: Enable JMX MBean support for generic J2EE servers
- R3: MBeans have a 1:1 relationship with their session (multiple EARs=multiple beans)
- R4: Clients can disable post login MBean registration (via SessionCustomizer)
- R5: Clients can manage their own registration of EclipseLink MBeans (via ApplicationLifecycleListener)
Design Constraints
- C1: MBeans are not available until the first login of a server application (lazy-loaded)
- C2:
Use Cases
- UC1: EclipseLink managed MBean registration
- UC2: Application managed MBean registration
- UC3: No MBean registration
Design / Functionality
MBean Functions/Attributes
The following functions are supported in EclipseLink 1.0
Runtime Services MBean
Development Services MBean
The following functions are obsolete or deprecated and will not be included.
Runtime Services MBean
Development Services MBean
EclipseLink Managed Lazy Registration
By default MBean registration is enabled for WebLogic. This registration occurs as a post step during the first login to the session.
Application Managed Lazy Registration
Disabling MBean Registration
If MBean registration is not required, or the application will be handling registration then you may disable automatic registration at the first login by setting up the following.
WebLogic ApplicationLifecycleListener Example
Here the application can manage registration/deregistration of the MBeans by using a SessionCustomizer in conjunction with a listener on either a servlet or session bean within the JEE application.
- SessionCustomizer
- Listener
You must configure the EclipseLink Mbeans in the EAR/meta-inf via a weblogic-application.xml descriptor entry.
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd"> <weblogic-application xmlns="http://www.bea.com/ns/weblogic/10"> <listener> <listener-class>org.eclipse.persistence.example.unified.integration.ApplicationLifecycleListenerImpl</listener-class> </listener> </weblogic-application>
Testing
A formal JMX J2SE client test suite is required.
Manual Testing Results
Action: DevelopmentServices | initializeIdentityMap p1=org.eclipse.persistence.example.unified.business.StatLabel
[EL Finer]: 2008.06.24 08:58:13.722--ServerSession(32676101)--Thread(Thread[RMI TCP Connection(16)-10.156.52.98,5,RMI Runtime])-- initialize identitymaps [EL Finer]: 2008.06.24 08:59:04.004--ServerSession(32676101)--Thread(Thread[RMI TCP Connection(18)-10.156.52.98,5,RMI Runtime])-- initialize identitymap: class org.eclipse.persistence.example.unified.business.StatLabel
API
GUI
<JAVA_HOME>/bin/JConsole client
You should see the following EclipseLink MBeans off the root of the JNDI tree. In this example there are 2 separate EARs deployed to WebLogic - each with its own set of MBeans based on the login session.
Config files
Documentation
http://wiki.eclipse.org/Integrating_EclipseLink_with_an_Application_Server_(ELUG)#How_to_Integrate_JMX - move and rewrite for WebLogic http://wiki.eclipse.org/Configuring_a_Session_%28ELUG%29#Configuring_the_Server_Platform - WebLogic replaces OC4J in "Check this field to configure the EclipseLink runtime to enable the deployment of a JMX MBean that allows monitoring of the EclipseLink session. Currently, this is only supported for OC4J."
Open Issues
Issue # | Owner | Description / Notes |
---|---|---|
Decisions
Issue # | Description / Notes | Decision |
---|---|---|
Future Considerations
During the research for this project the following items were identified as out of scope but are captured here as potential future enhancements. If agreed upon during the review process these should be logged in the bug system.
- OC4J, WebSphere, JBoss, Geronimo specific MBean support