Class PerformanceMonitor

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, SessionProfiler

    public class PerformanceMonitor
    extends java.lang.Object
    implements java.io.Serializable, java.lang.Cloneable, SessionProfiler

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

    See Also:
    Serialized Form
    Author:
    James Sutherland
    Since:
    EclipseLink 2.2
    • Field Detail

      • session

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

        protected java.util.Map<java.lang.String,​java.lang.Object> operationTimings
      • operationStartTimesByThread

        protected java.util.Map<java.lang.Integer,​java.util.Map<java.lang.String,​java.lang.Long>> operationStartTimesByThread
      • lastDumpTime

        protected long lastDumpTime
      • dumpTime

        protected long dumpTime
      • profileWeight

        protected int profileWeight
    • Constructor Detail

      • PerformanceMonitor

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

      • 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.
      • 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​(java.lang.String operationName)
        INTERNAL: End the operation timing.
        Specified by:
        endOperationProfile in interface SessionProfiler
      • getOperationStartTimes

        protected java.util.Map<java.lang.String,​java.lang.Long> getOperationStartTimes()
      • getOperationStartTimesByThread

        protected java.util.Map<java.lang.Integer,​java.util.Map<java.lang.String,​java.lang.Long>> getOperationStartTimesByThread()
      • getOperationTime

        public java.lang.Object getOperationTime​(java.lang.String operation)
      • getOperationTimings

        public java.util.Map<java.lang.String,​java.lang.Object> getOperationTimings()
      • getSession

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

        public java.lang.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.
      • startOperationProfile

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

        public void update​(java.lang.String operationName,
                           java.lang.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​(java.lang.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​(java.lang.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:
        SessionProfiler