Class PerformanceMonitor

java.lang.Object
org.eclipse.persistence.tools.profiler.PerformanceMonitor
All Implemented Interfaces:
Serializable, Cloneable, SessionProfiler

public class PerformanceMonitor extends Object implements Serializable, Cloneable, SessionProfiler

Purpose: A tool used to provide performance monitoring information in a server environment.

See Also:
Author:
James Sutherland
  • Field Details

    • COUNTER

      protected static final String COUNTER
      See Also:
    • TIMER

      protected static final String TIMER
      See Also:
    • session

      protected transient org.eclipse.persistence.internal.sessions.AbstractSession session
    • operationTimings

      protected Map<String,Object> operationTimings
    • operationStartTimesByThread

      protected Map<Integer,Map<String,Long>> operationStartTimesByThread
    • lastDumpTime

      protected long lastDumpTime
    • dumpTime

      protected long dumpTime
    • profileWeight

      protected int profileWeight
  • Constructor Details

    • PerformanceMonitor

      public PerformanceMonitor()
      PUBLIC: Create a new profiler. The profiler can be registered with a session to log performance information on queries.
  • Method Details

    • getDumpTime

      public long getDumpTime()
      Return the number of milliseconds after which the monitor results should be logged.
    • setDumpTime

      public void setDumpTime(long dumpTime)
      Set the number of milliseconds after which the monitor results should be logged.
    • clone

      public PerformanceMonitor clone()
      Overrides:
      clone in class Object
    • checkDumpTime

      public void checkDumpTime()
      Log the results after a set amount of time has passed.
    • dumpResults

      public void dumpResults()
      Log the results to the session's log (System.out).
    • endOperationProfile

      public void endOperationProfile(String operationName)
      INTERNAL: End the operation timing.
      Specified by:
      endOperationProfile in interface SessionProfiler
    • endOperationProfile

      public void endOperationProfile(String operationName, DatabaseQuery query, int weight)
      INTERNAL: End the operation timing.
      Specified by:
      endOperationProfile in interface SessionProfiler
    • getOperationStartTimes

      protected Map<String,Long> getOperationStartTimes()
    • getOperationStartTimesByThread

      protected Map<Integer,Map<String,Long>> getOperationStartTimesByThread()
    • getOperationTime

      public Object getOperationTime(String operation)
    • getOperationTimings

      public Map<String,Object> getOperationTimings()
    • getSession

      public org.eclipse.persistence.internal.sessions.AbstractSession getSession()
    • profileExecutionOfQuery

      public Object profileExecutionOfQuery(DatabaseQuery query, Record row, org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Monitoring is done on the endOperation only.
      Specified by:
      profileExecutionOfQuery in interface SessionProfiler
      Returns:
      the execution result of the query.
    • setSession

      public void setSession(Session session)
      Description copied from interface: SessionProfiler
      INTERNAL: Set the session.
      Specified by:
      setSession in interface SessionProfiler
    • startOperationProfile

      public void startOperationProfile(String operationName)
      INTERNAL: Start the operation timing.
      Specified by:
      startOperationProfile in interface SessionProfiler
    • startOperationProfile

      public void startOperationProfile(String operationName, DatabaseQuery query, int weight)
      INTERNAL: Start the operation timing.
      Specified by:
      startOperationProfile in interface SessionProfiler
    • update

      public void update(String operationName, Object value)
      Description copied from interface: SessionProfiler
      INTERNAL: Update the value of the State sensor.(DMS)
      Specified by:
      update in interface SessionProfiler
    • occurred

      public void occurred(String operationName, org.eclipse.persistence.internal.sessions.AbstractSession session)
      Description copied from interface: SessionProfiler
      INTERNAL: Increase DMS Event sensor occurrence.(DMS)
      Specified by:
      occurred in interface SessionProfiler
    • occurred

      public void occurred(String operationName, DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
      Description copied from interface: SessionProfiler
      INTERNAL: Increase DMS Event sensor occurrence.(DMS)
      Specified by:
      occurred in interface SessionProfiler
    • setProfileWeight

      public void setProfileWeight(int profileWeight)
      Set the level of profiling. One of ALL, HEAVY, NORMAL, NONE. The higher the level, the more operations are profiled.
      Specified by:
      setProfileWeight in interface SessionProfiler
      See Also:
    • getProfileWeight

      public int getProfileWeight()
      Return the level of profiling. One of ALL, HEAVY, NORMAL, NONE.
      Specified by:
      getProfileWeight in interface SessionProfiler
      See Also:
    • initialize

      public void initialize()
      Description copied from interface: SessionProfiler
      INTERNAL: Initialize EclipseLink noun tree(DMS)
      Specified by:
      initialize in interface SessionProfiler