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/316513
< EclipseLink | DesignDocs
Contents
- 1 Design Specification: Extend WebLogic 10.3 JMX MBean support to JBoss 5.1.0 and WebSphere 7 as generic API
- 1.1 Work in Queue
- 1.2 Completed Work
- 1.3 Document History
- 1.4 Project overview
- 1.5 Analysis
- 1.5.1 Enabling JMX MBeans
- 1.5.2 WebLogic JMX Integration
- 1.5.3 JBoss JMX Integration
- 1.5.3.1 Modules
- 1.5.3.1.1 NEW: core:services.mbean.jboss.MBeanJBossRuntimeServices.java
- 1.5.3.1.2 NEW: core:services.mbean.jboss.MBeanJBossRuntimeServicesMBean.java
- 1.5.3.1.3 NEW: core:services.mbean.jboss.JBossRuntimeServices.java
- 1.5.3.1.4 MOD: core:services.mbean.weblogic.ClassSummaryDetail.java moved up to parent package
- 1.5.3.1.5 MOD: core:platform.server.jboss.JBossPlatform.java
- 1.5.3.1 Modules
- 1.5.4 WebSphere JMX Integration
- 1.5.5 GlassFish JMX Integration
- 1.6 Design
- 1.7 Implementation
- 1.8 Testing
- 1.9 Open Issues
- 1.10 References
Design Specification: Extend WebLogic 10.3 JMX MBean support to JBoss 5.1.0 and WebSphere 7 as generic API
Work in Queue
- 316513: JMX: Refactor MBean support to include JBoss and WebSphere
- 316510: JMX: Add JMX MBean support to WebSphere 7
- 316511: JMX: Add JMX MBean support to JBoss 5.1.0 EAP
- 316512: JMX: Add JMX MBean support to Glassfish 3 - nofix
- 316509: JMX: Move JMX MBean support for WebLogic 10.3 to a generic ServerPlatformBase
- 265540: JMX: Add runtime services MBean monitoring to Java SE clients
Completed Work
- Design document for generic JMX MBeans for WebLogic
- Bug# 248748 - WebLogic extensions to generic JMX MBeans
- JMX MBean Tutorial for Oracle WebLogic Server
Document History
Date | Author | Version Description & Notes |
---|---|---|
2010-06-10 | Michael O'Brien | 0.1 Starting Draft for Generic JMX MBean support to extend WebLogic 10.3 support to JBoss 5.1.0 EAP and WebSphere 7 for ER 316513 |
2010-06-22 | Michael O'Brien | 0.2 Develop/Document JBoss 5.1.0 EAP JMX registration code ER 316511 |
Project overview
- This document is an extension of the work done in enhancement 248748 that added JMX MBean support for EclipseLink to WebLogic 10.x.
Analysis
Enabling JMX MBeans
- The following properties will continue to enable registration for any capable application server.
- No code changes required at this point.
WebLogic
rem set JAVA_OPTIONS=%JAVA_OPTIONS% -Declipselink.register.dev.mbean=true rem set JAVA_OPTIONS=%JAVA_OPTIONS% -Declipselink.register.run.mbean=true
JBoss
- jboss-eap-5.0/jboss/as/bin/run.bat:83
// after set JAVA_OPTS=%JAVA_OPTS% "-Djava.library.path=%JBOSS_NATIVE_HOME%;%PATH%;%SYSTEMROOT%" // add set JAVA_OPTS=%JAVA_OPTS% -Declipselink.register.run.mbean=true
WebSphere
WebLogic JMX Integration
JBoss JMX Integration
- 20100622: This section details the JMX registration code for EclipseLink MBeans on JBoss 5.1.0 EAP
- See jar signing and JMX prepending issues solved in bug# 305331 specific to the JBoss EAP edition that need to be covered off.
Modules
NEW: core:services.mbean.jboss.MBeanJBossRuntimeServices.java
NEW: core:services.mbean.jboss.MBeanJBossRuntimeServicesMBean.java
NEW: core:services.mbean.jboss.JBossRuntimeServices.java
MOD: core:services.mbean.weblogic.ClassSummaryDetail.java moved up to parent package
MOD: core:platform.server.jboss.JBossPlatform.java
WebSphere JMX Integration
GlassFish JMX Integration
Design
Design Issue NN:
Analysis NN:
Solution NN:
Implementation
Testing
JBoss Specific EAR Configuration
- The following scenario specifies @Remote on the remote interface and @Stateless on the stateless session bean.
- This results in the following JNDI name emitted by the server on EAR deploy
@Stateless(name="ApplicationService", mappedName="ApplicationService") @Remote(ApplicationServiceRemote.class) public class ApplicationService implements ApplicationServiceRemote { @PersistenceContext(unitName="example", type=PersistenceContextType.TRANSACTION) private EntityManager entityManager; ... } public class FrontController extends HttpServlet implements Servlet { public static final String APPLICATION_SERVICE_JNDI_NAME = "org.eclipse.persistence.example.jpa.server.jboss.EnterpriseEAR/ApplicationService/remote-org.eclipse.persistence.example.jpa.server.business.ApplicationServiceRemote"; /** * Get the SSB ApplicationService bean - using a JNDI context lookup (no EJB injection was used on this servlet) * @param viaJNDILookup * @return */ public ApplicationServiceRemote getApplicationService(boolean viaJNDILookup) { if(null == applicationService && viaJNDILookup) { try { Hashtable<String, String> env = new Hashtable<String, String>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); env.put(Context.PROVIDER_URL, "localhost"); env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces" ); InitialContext ctx = new InitialContext(env); System.out.println("FrontController.getApplicationService() JNDI lookup of " + APPLICATION_SERVICE_JNDI_NAME); return (ApplicationServiceRemote) ctx.lookup(APPLICATION_SERVICE_JNDI_NAME); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("couldn't lookup Dao", e); } } else { return applicationService; } } ... }