Skip to main content
Jump to: navigation, search


< EclipseLink‎ | DesignDocs
Revision as of 13:23, 5 August 2010 by (Talk | contribs) (Requirements)

Design Specification: Performance Monitor

ER 321763


Document History

Date Author Version Description & Notes
2010-08-05 James 0.1 Draft

Project overview

We currently have two profilers, the PerformanceProfiler and the QueryMonitor. The PerformanceProfiler provides detailed information, but is not very useful in a server environment. The QueryMonitor is useful in a server environment, but does not provide detailed information. EclipseLink already contains an extensive profiling and monitoring API that was previously developed under TopLink for Oracle DMS, but does not provide a profiler implementation that makes use of these APIs.

The PerformanceMonitor's goal is to somewhat unify the PerformanceProfiler and QueryMonitor to provide detailed profiling and monitoring information in a mutli-threaded server environment.


Profiling is mainly concerned with timing information (time spent in cache, querying), monitoring is mainly concerned with state information (cache size, number of transactions).


  • Make use of the existing SessionProfiler API that was designed for DMS.
  • Support multi-threading.
  • Support a server environment.
  • Be configurable without any Java code.

Design Constraints



Output of profiler should be analyzed under SRG test run, performance tests, and in JEE performance benchmark runs.


  • ProfilerType - PerformanceMonitor
  • PerformanceMonitor
    • getOperationTimings()
    • setDumpTime(int)

Config files

  • persistence.xml
    • <property name="eclipselink.profiler" value="PerformanceMonitor"/>


Should be documented under performance section of JPA user guide.

Open Issues

Issue # Owner Description / Notes
1 Are there additional metrics to profile?


Issue # Description / Notes Decision

Future Considerations

  • Additional metrics.
  • JMX support.

Back to the top