Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/DesignDocs/332312"

m (EclipseLink Application Management, Analytics, Diagnostics and Performance)
m (Existing Enhancement Requests)
Line 45: Line 45:
 
**Q4) What new features can we provide on top of Q1-Q3 that are specific to EclipseLink that go beyond what is currently available.
 
**Q4) What new features can we provide on top of Q1-Q3 that are specific to EclipseLink that go beyond what is currently available.
 
===Existing Enhancement Requests===
 
===Existing Enhancement Requests===
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=238412 238412]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=238412 238412: JMX: Add J2SE MBean JUnit client test suite ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=252786 252786]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=252786 252786: WLS: Add extended metrics functionality to WebLogic specific JMX MBeans ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=253017 253017]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=253017 253017: JMX: Refactor: MBean impl/interface naming conventions change ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=253019 253019]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=253019 253019: JMX: Refactor: Additional Human readable time format for TimeConnectionEstablished ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=253020 253020]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=253020 253020: JMX: Refactor: getCacheTypeFor() for NoIdentityMap should return "NoIdentity" instead "None" ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=256943 256943]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=256943 256943: JMX: Remove the development MBean from EclipseLink (keep RuntimeServices) ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=256945 256945]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=256945 256945: JMX: Append JPA persistence unit name to MBean session name ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=261038 261038]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=261038 261038: JMX: values of ProfilingType attr should correspond to types in org.eclipse.persistence.config.ProfilerType ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=263271 263271]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=263271 263271: JMX: A new attribute for persistenceUnit name ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=263274 263274]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=263274 263274: JMX: An attribute returning dataSource name.]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=265540 265540]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=265540 265540: JMX: Add runtime services MBean monitoring to Java SE clients ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=266016 266016]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=266016 266016: JMX: MBeans: Add session and metadata runtime modification capability to runtime services mbeans]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=317991 317991]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=317991 317991: JMX: initializeIdentityMap(className) requires unset EMPTY_STRING input validation handler to avoid ClassNotFoundException]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=320431 320431]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=320431 320431: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=320684 320684]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=320684 320684: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=321229 321229]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=321229 321229: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=322288 322288]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=322288 322288: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=325893 325893]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=325893 325893: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=325901 325901]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=325901 325901: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=326004 326004]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=326004 326004: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=330095 330095]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=330095 330095: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=333160 333160]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=333160 333160: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=333161 333161]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=333161 333161: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=333197 333197]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=333197 333197: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=334468 334468]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=334468 334468: ]
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=333368 333368]
+
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=333368 333368: ]
  
 
===Requirements Details===
 
===Requirements Details===

Revision as of 11:19, 16 February 2011

EclipseLink Application Management, Analytics, Diagnostics and Performance

Document History

Date Author Version Description & Notes
20110214 Michael O'Brien 1.0 Initial draft started

Problem Statement

  • This enhancement details work that will be done to enhance our basic JMX management API and add additional support for diagnostics and analytics reporting. We will also look at adding features that will enable developers to more accurately capture runtime performance and diagnostics information, as well as tools to interpret that data.
  • There are two issues to this enhancement that separately deal with management and diagnostics reporting.

Management API

  • Our existing runtime JMX management API that is exposed through the services MBean in any of the SUN JConsole, JRockit JRMC, Oracle JRF Enterprise Manager or JBoss web based console is sufficient but needs to be enhanced.

Diagnostics API

  • Our existing runtime performance monitoring API could be enhanced with more JVM reporting - ideally that would not itself add overhead. This type of monitoring is currently done with JRockit - however it does not specifically target the JPA runtime API.

Scope

  • The scope of this issue is limited to the primary EE application servers that we currently support via JMX. These are WebLogic, WebSphere, GlassFish and JBoss. We may also extend support to SE applications and EJB 3.1 Lite containers running exclusively in the web container.

Session Management

Unified Metadata

  • Metadata mappings from Annotations and ORM XML
  • JPA 2.0 Metamodel

Session Cache

Query Cache

Dependency Injection Reference

  • Spring, Session, Message-Driven and Singleton beans that reference or have injections of EMFs or EMs

L1 Cache

L2 Cache

JDBC Database Configuration

Extensibility and Multitenancy

  • Management of shared schemas

Requirements

  • Before we can decide on how and where we will enhance our management, analytics and diagnostics support we need to answer the following questions.
    • Q1) What do we currently provide
    • Q2) What are we going to with existing enhancment requests and how will we merge these with new requirements.
    • Q3) What new features can we provide to leverage new or existing management, performance and analytics tools that ship with the latest application server releases
    • Q4) What new features can we provide on top of Q1-Q3 that are specific to EclipseLink that go beyond what is currently available.

Existing Enhancement Requests

Requirements Details

  • Official high level requirements
  • R1: Address critical open issues general to all application servers
  • R2: Expand platforms that we support JMX management on
    • R2.1: Expand support for JMX management of JPA based applications to SE clients
    • R2.2: Expand support for JMX management of JPA based applications to JEE6 EJB3.1 container managed deployments
    • R2.2: (WebLogic) Integration points for weblogic.management.runtime WLSRuntimeMBeans
  • R3: Manageability Requirements
    • R3.1: Make MBeans change session aware - may not be an issue unless we are classified as configuration MBeans
    • R3.2: (WebLogic EM) Provide discovery MBean with EM target types
    • R3.3: Identify Key metrics?
  • R4: Performance Tracking Requirements
    • R4.1: (WebLogic) JRockit Mission Control Integration
    • R4.2: (WebLogic) JRMC Flight Recorder integration
    • R4.3: (WebLogic) Oracle Diagnostics Logging (ODL) usage/integration
    • R4.4: Expose Runtime monitoring through a new MBean or the new generic PerformanceProfiler MBean
      • This MBean would be exposed in EM?
    • R4.4: Multicore utilization or thread parallelism API
  • R5: Performance Analytics Requirements
    • R5.1: (WebLogic) JRMC Runtime Analyser integration - to interpret JRMC-FR results
    • R5.2: EclipseLink Performance Profiler analysis tool?
  • R6: Scripting Requirements
    • R6.1: (WebLogic) WLST jython scripting required?
    • R6.2: WSADMIN (python) and OJBST scripting required?
  • R7: Security Requirements
    • R7.1: Verify security manager support for MBeans in WebSphere and JBoss
    • R7.2: Determine how JConsole local access can be secured (remote access is via password or port control)
  • R8: Localization
    • R8.1: Command labels and messages must be I18N enabled.
  • R9: Cache Integration (EclipseLink, Coherence, ehCache, Terracotta)
    • R9.1: Expose MBean spanning multiple servers (no L2 cache)?
    • R9.2: Expose multiple MBeans from multiple L1 EclipseLink caches
    • R9.2: Expose MBean spanning multiple L2 caches
  • R10: Third Party Integration
    • R10.1: Spring Hyperic integration
    • R10.2: Spring Insight integration
  • Introduce Admin Role MBeans
  • Investigate Scripting support for configuration changes (WLS for WebLogic, Python for WebSphere, ? for JBoss, ? for GlassFish)

WebLogic Specific Requirements

  • WebLogic Server has several monitoring API join points that we can use either at the WebLogic MBean level or through events exposed to JRMC for servers running on the JRockit JVM. We will need to work closely with the WLS team to finalize the interfaces between EclipseLink and WLS.


Generic Server Requirements

  • Ideally, any new API should be available to all supported EE servers (not just WebLogic) and optionally SE clients.
  • R: Expose PerformanceProfiler/PerformanceMonitor events through a new MBean generic to all EE servers

Constraints

Assumptions

Analysis

Design

Implementation

Testing

References

Competitive Intelligence

Back to the top