EclipseLink 2.4.0, build 'v20120608-r11652' API Reference

org.eclipse.persistence.tools.profiler.oracle
Class DMSPerformanceProfiler

java.lang.Object
  extended by org.eclipse.persistence.tools.profiler.oracle.DMSPerformanceProfiler
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, SessionProfiler

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

Purpose: Define the interface of EclipseLink profiler for using DMS gate.

Description: A mechanism used to provide a link for EclipseLink performance profiling by using the DMS tool. The predefined EclipseLink metrics will be monitored by using DMS sensors. EclipseLink library instrumentation will be done by inserting DMS calls for the purpose of measuring its performance

Responsibilities:

See Also:
Serialized Form
Since:
TopLink 10.1.3

Field Summary
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Noun> allWeightNouns
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> allWeightSensors
           
static java.lang.String CACHE
           
static java.lang.String CacheNounType
           
static java.lang.String CONNECT
           
static java.lang.String ConnectionInUse
           
static java.lang.String ConnectionNounType
           
static java.lang.String DistributedMergeDmsDisplayName
           
static java.lang.String EclipseLinkRootNoun
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Noun> heavyWeightNouns
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> heavyWeightSensors
           
protected static boolean isDMSSpyInitialized
           
static java.lang.String MergeTime
           
static java.lang.String MiscellaneousNounType
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> normalAndHeavyWeightSensors
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> normalHeavyAndAllWeightSensors
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Noun> normalWeightNouns
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> normalWeightSensors
           
protected  java.lang.ThreadLocal operationStartTokenThreadLocal
           
static java.lang.String RcmNounType
           
protected  oracle.dms.instrument.Noun root
           
static java.lang.String Sequencing
           
protected  org.eclipse.persistence.internal.sessions.AbstractSession session
           
static java.lang.String SessionNounType
           
static java.lang.String TransactionNounType
           
static java.lang.String UnitOfWorkRegister
           
protected  int weight
           
 
Fields inherited from interface org.eclipse.persistence.sessions.SessionProfiler
ALL, AssignSequence, CachedObjects, CacheHits, CacheMisses, Caching, ChangeSetsNotProcessed, ChangeSetsProcessed, ClientSessionCreated, ConnectionManagement, ConnectionPing, Connects, DescriptorEvent, Disconnects, DistributedMerge, HEAVY, JtsAfterCompletion, JtsBeforeCompletion, Logging, LoginTime, Merge, NONE, NORMAL, ObjectBuilding, OptimisticLockException, QueryPreparation, RcmReceived, RcmSent, RcmStatus, Register, RemoteChangeSet, RowFetch, SessionEvent, SessionName, SqlGeneration, SqlPrepare, StatementExecute, Transaction, UowCommit, UowCommits, UowCreated, UowRollbacks
 
Constructor Summary
DMSPerformanceProfiler()
          PUBLIC: Create a new dms profiler.
DMSPerformanceProfiler(Session session)
          PUBLIC: Create a new dms profiler.
 
Method Summary
protected  void createRootNoun()
          INTERNAL: Create root noun for TopLink dms metrics.
protected  void destroyNounsByWeight(int weight)
          INTERNAL: Destroy nouns based on dms weight when user changes the weight at runtime.
protected  void destroySensorsByWeight(int weight)
          INTERNAL: Destroy sensors based on dms weight when user changes the weight at runtime.
 void endOperationProfile(java.lang.String operationName)
          INTERNAL: Link to the dms PhaseEvent api stop().
 void endOperationProfile(java.lang.String operationName, DatabaseQuery query, int weight)
          INTERNAL: Link to the dms PhaseEvent api stop().
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Noun> getAllWeightNouns()
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getAllWeightSensors()
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Noun> getHeavyWeightNouns()
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getHeavyWeightSensors()
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getNormalAndHeavyWeightSensors()
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getNormalHeavyAndAllWeightSensors()
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Noun> getNormalWeightNouns()
           
protected  java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getNormalWeightSensors()
           
protected  oracle.dms.instrument.Noun getNounByType(java.lang.String type, oracle.dms.instrument.Noun parentNoun, int weight)
          INTERNAL: Look for noun based on the given type and weight.
protected  java.lang.ThreadLocal getOperationStartTokenThreadLocal()
           
protected  oracle.dms.instrument.Sensor getPhaseEventForQuery(java.lang.String operationName, DatabaseQuery query, int weight)
          INTERNAL: Look for sensor for the name: TopLink____(if exist)_(if exist).
protected  java.util.HashMap getPhaseEventStartToken()
           
 int getProfileWeight()
          INTERNAL: Return current TopLink dms weight.
protected  oracle.dms.instrument.Sensor getSensorByName(java.lang.String operationName)
          INTERNAL: Return dms sensor which created by pre-defined TopLink metrics.
 org.eclipse.persistence.internal.sessions.AbstractSession getSession()
           
 java.lang.String getSessionName()
           
 void initialize()
          INTERNAL: Initialize TopLink noun tree by default (DMSConsole.getSensorWeight())
protected  void initializeAllWeightSensors()
          INTERNAL: Build dms ALL weight sensors for TopLink dms metrics.
protected  void initializeHeavyWeightSensors()
          INTERNAL: Build dms HEAVY weight sensors for TopLink dms metrics.
protected  void initializeNormalWeightSensors()
          INTERNAL: Build dms NORMAL weight sensors for TopLink dms metrics.
protected  void initializeNounTree(int newWeight)
          INTERNAL: Initialize TopLink noun tree based on dms weight.
protected  void initSpy()
          INTERNAL: This method is useful for standalone TopLink application Initialize DMS, should be called once and should be called before any other DMS calls.
 void occurred(java.lang.String operationName)
          INTERNAL: Link to the dms Event api occurred().
 void occurred(java.lang.String operationName, DatabaseQuery query)
          INTERNAL: Increase DMS Event sensor occurrence.
 java.lang.Object profileExecutionOfQuery(DatabaseQuery query, Record row, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Finish a profile operation if profiling.
 void setProfileWeight(int newWeight)
          INTERNAL: Api for changing dms weight dynamically.
 void setSession(Session session)
          INTERNAL: Set the session.
 void startOperationProfile(java.lang.String operationName)
          INTERNAL: Link to the dms PhaseEvent api start().
 void startOperationProfile(java.lang.String operationName, DatabaseQuery query, int weight)
          INTERNAL: Link to the dms PhaseEvent api start().
 void update(java.lang.String operationName, java.lang.Object value)
          INTERNAL: Link to the dms State api update().
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EclipseLinkRootNoun

public static final java.lang.String EclipseLinkRootNoun
See Also:
Constant Field Values

SessionNounType

public static final java.lang.String SessionNounType
See Also:
Constant Field Values

TransactionNounType

public static final java.lang.String TransactionNounType
See Also:
Constant Field Values

RcmNounType

public static final java.lang.String RcmNounType
See Also:
Constant Field Values

ConnectionNounType

public static final java.lang.String ConnectionNounType
See Also:
Constant Field Values

CacheNounType

public static final java.lang.String CacheNounType
See Also:
Constant Field Values

MiscellaneousNounType

public static final java.lang.String MiscellaneousNounType
See Also:
Constant Field Values

ConnectionInUse

public static final java.lang.String ConnectionInUse
See Also:
Constant Field Values

MergeTime

public static final java.lang.String MergeTime
See Also:
Constant Field Values

UnitOfWorkRegister

public static final java.lang.String UnitOfWorkRegister
See Also:
Constant Field Values

DistributedMergeDmsDisplayName

public static final java.lang.String DistributedMergeDmsDisplayName
See Also:
Constant Field Values

Sequencing

public static final java.lang.String Sequencing
See Also:
Constant Field Values

CONNECT

public static final java.lang.String CONNECT
See Also:
Constant Field Values

CACHE

public static final java.lang.String CACHE
See Also:
Constant Field Values

session

protected org.eclipse.persistence.internal.sessions.AbstractSession session

root

protected oracle.dms.instrument.Noun root

normalWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> normalWeightSensors

heavyWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> heavyWeightSensors

allWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> allWeightSensors

normalAndHeavyWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> normalAndHeavyWeightSensors

normalHeavyAndAllWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> normalHeavyAndAllWeightSensors

normalWeightNouns

protected java.util.Map<java.lang.String,oracle.dms.instrument.Noun> normalWeightNouns

heavyWeightNouns

protected java.util.Map<java.lang.String,oracle.dms.instrument.Noun> heavyWeightNouns

allWeightNouns

protected java.util.Map<java.lang.String,oracle.dms.instrument.Noun> allWeightNouns

operationStartTokenThreadLocal

protected java.lang.ThreadLocal operationStartTokenThreadLocal

isDMSSpyInitialized

protected static boolean isDMSSpyInitialized

weight

protected int weight
Constructor Detail

DMSPerformanceProfiler

public DMSPerformanceProfiler()
PUBLIC: Create a new dms profiler. The profiler can be registered with a session to log performance information.


DMSPerformanceProfiler

public DMSPerformanceProfiler(Session session)
PUBLIC: Create a new dms profiler. The profiler can be registered with a session to log performance information.

Method Detail

initializeNounTree

protected void initializeNounTree(int newWeight)
INTERNAL: Initialize TopLink noun tree based on dms weight.


setProfileWeight

public void setProfileWeight(int newWeight)
INTERNAL: Api for changing dms weight dynamically.

Specified by:
setProfileWeight in interface SessionProfiler

initialize

public void initialize()
INTERNAL: Initialize TopLink noun tree by default (DMSConsole.getSensorWeight())

Specified by:
initialize in interface SessionProfiler

getProfileWeight

public int getProfileWeight()
INTERNAL: Return current TopLink dms weight.

Specified by:
getProfileWeight in interface SessionProfiler

startOperationProfile

public void startOperationProfile(java.lang.String operationName)
INTERNAL: Link to the dms PhaseEvent api start().

Specified by:
startOperationProfile in interface SessionProfiler

startOperationProfile

public void startOperationProfile(java.lang.String operationName,
                                  DatabaseQuery query,
                                  int weight)
INTERNAL: Link to the dms PhaseEvent api start(). Intended to be used for query profiling.

Specified by:
startOperationProfile in interface SessionProfiler

endOperationProfile

public void endOperationProfile(java.lang.String operationName)
INTERNAL: Link to the dms PhaseEvent api stop().

Specified by:
endOperationProfile in interface SessionProfiler

endOperationProfile

public void endOperationProfile(java.lang.String operationName,
                                DatabaseQuery query,
                                int weight)
INTERNAL: Link to the dms PhaseEvent api stop(). Intended to be used for query profiling.

Specified by:
endOperationProfile in interface SessionProfiler

update

public void update(java.lang.String operationName,
                   java.lang.Object value)
INTERNAL: Link to the dms State api update().

Specified by:
update in interface SessionProfiler

occurred

public void occurred(java.lang.String operationName)
INTERNAL: Link to the dms Event api occurred().

Specified by:
occurred in interface SessionProfiler

occurred

public void occurred(java.lang.String operationName,
                     DatabaseQuery query)
INTERNAL: Increase DMS Event sensor occurrence.(DMS)

Specified by:
occurred in interface SessionProfiler

getPhaseEventForQuery

protected oracle.dms.instrument.Sensor getPhaseEventForQuery(java.lang.String operationName,
                                                             DatabaseQuery query,
                                                             int weight)
INTERNAL: Look for sensor for the name: TopLink____(if exist)_(if exist). If not found, look for the noun the sensor should be built on. If the noun is not found, create a new one. Create the sensor based on the noun.


getNounByType

protected oracle.dms.instrument.Noun getNounByType(java.lang.String type,
                                                   oracle.dms.instrument.Noun parentNoun,
                                                   int weight)
INTERNAL: Look for noun based on the given type and weight. If not found and the parent noun is not null, create a new noun.


getSensorByName

protected oracle.dms.instrument.Sensor getSensorByName(java.lang.String operationName)
INTERNAL: Return dms sensor which created by pre-defined TopLink metrics.


createRootNoun

protected void createRootNoun()
INTERNAL: Create root noun for TopLink dms metrics.


initializeNormalWeightSensors

protected void initializeNormalWeightSensors()
INTERNAL: Build dms NORMAL weight sensors for TopLink dms metrics.


initializeHeavyWeightSensors

protected void initializeHeavyWeightSensors()
INTERNAL: Build dms HEAVY weight sensors for TopLink dms metrics.


initializeAllWeightSensors

protected void initializeAllWeightSensors()
INTERNAL: Build dms ALL weight sensors for TopLink dms metrics.


initSpy

protected void initSpy()
INTERNAL: This method is useful for standalone TopLink application Initialize DMS, should be called once and should be called before any other DMS calls.


destroySensorsByWeight

protected void destroySensorsByWeight(int weight)
INTERNAL: Destroy sensors based on dms weight when user changes the weight at runtime.


destroyNounsByWeight

protected void destroyNounsByWeight(int weight)
INTERNAL: Destroy nouns based on dms weight when user changes the weight at runtime.


getPhaseEventStartToken

protected java.util.HashMap getPhaseEventStartToken()

getNormalWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getNormalWeightSensors()

getHeavyWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getHeavyWeightSensors()

getAllWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getAllWeightSensors()

getNormalAndHeavyWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getNormalAndHeavyWeightSensors()

getNormalHeavyAndAllWeightSensors

protected java.util.Map<java.lang.String,oracle.dms.instrument.Sensor> getNormalHeavyAndAllWeightSensors()

getNormalWeightNouns

protected java.util.Map<java.lang.String,oracle.dms.instrument.Noun> getNormalWeightNouns()

getHeavyWeightNouns

protected java.util.Map<java.lang.String,oracle.dms.instrument.Noun> getHeavyWeightNouns()

getAllWeightNouns

protected java.util.Map<java.lang.String,oracle.dms.instrument.Noun> getAllWeightNouns()

getOperationStartTokenThreadLocal

protected java.lang.ThreadLocal getOperationStartTokenThreadLocal()

getSession

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

getSessionName

public java.lang.String getSessionName()

setSession

public void setSession(Session session)
Description copied from interface: SessionProfiler
INTERNAL: Set the session.

Specified by:
setSession in interface SessionProfiler

profileExecutionOfQuery

public java.lang.Object profileExecutionOfQuery(DatabaseQuery query,
                                                Record row,
                                                org.eclipse.persistence.internal.sessions.AbstractSession session)
Description copied from interface: SessionProfiler
INTERNAL: Finish a profile operation if profiling. This assumes the start operation proceeds on the stack. The session must be passed to allow units of work etc. to share their parents profiler.

Specified by:
profileExecutionOfQuery in interface SessionProfiler
Returns:
the execution result of the query.

EclipseLink 2.4.0, build 'v20120608-r11652' API Reference