gross CPU time of component; is undefined (ConfMonitor.UNDEFTIME) if
component is not closed correctly or if CPU measurement is not
supported by the operating system
net CPU time of component; is undefined (ConfMonitor.UNDEFTIME) if
gross time not defined and at least one direct subcomponent is not
closed correctly or if CPU measurement is not
supported by the operating system
component with largest amount of outbound data (excluding component which
belongs directly to the request (level = 0); the data of this component
is shown in reqOutData)
Information about the components which build up the task;
sequence of elements corresponds to call sequence of the components.
null if there are no components
Information about the components which build up the task;
sequence of elements corresponds to call sequence of the components.
null if there are no components
parameter name for component trace level of JARM; if tracing and monitoring
is on for a request the most detailed level defined by COMPLEVEL and
COMPTRACELEVEL is used;
values: see COMPLEVEL
when a request is condensed this method is called for all components with
individual properties
implementing this method you have to fulfill following requirements
- the method has to be thread safe -> synchronize it
- dataCondensed could be null (normally if the first call is done)
-> create new object in that case if you want to condense data
- provide an efficient implementation because this method might be
called very often:
- avoid creating objects (exception: first creation of condensed data object)
- modify dataCondensed directly and return this object
- the data types of dataSingle and dataCondensed should be simple structures
with basic data types wherever possible
- dataSingle must not be manipulated
guaranteed: dataSingle !
same functionality than endComponent(String); additionally the amount
of data which is returned by the component is provided.
The method is executed only if compLevel is lower or equal the
current component monitoring level.
same functionality than endComponent(String); additionally the amount
of data which is returned by the component is provided.
The method is executed only if compLevel is lower or equal the
current component monitoring level.
same functionality than endComponent(String, int); additionally component
specific properties are provided.
the component specific properties could only be handled if the parameter
jarm/comp/properties/switch=on (default) and if there is there is an
implementation of ICompProperties for this component provided
The method is executed only if compLevel is lower or equal the
current component monitoring level.
same functionality than endComponent(String, int); additionally component
specific properties are provided.
the component specific properties could only be handled if the parameter
jarm/comp/properties/switch=on (default) and if there is there is an
implementation of ICompProperties for this component provided
The method is executed only if compLevel is lower or equal the
current component monitoring level.
same functionality than endComponent(String); additionally component
specific properties are provided.
the component specific properties could only be handled if the parameter
jarm/comp/properties/switch=on (default) and if there is there is an
implementation of ICompProperties for this component provided.
The method is executed only if compLevel is lower or equal the
current component monitoring level.
same functionality than endComponent(String); additionally component
specific properties are provided.
the component specific properties could only be handled if the parameter
jarm/comp/properties/switch=on (default) and if there is there is an
implementation of ICompProperties for this component provided.
The method is executed only if compLevel is lower or equal the
current component monitoring level.
method called when a component is ended;
instrumentation errors of the JARM API (missing endComponent calls)
are repaired by JARM by generating artificial endComponent calls;
example: application issues startComponent "A", startComponent "B",
endComponent "A" the listener gets endComponent "B" with generated = true
right before endComponent "A";
in fact it is unknown when component "B" has really ended, but the listener
could simply manage the component hierarchy by a stack
same functionality than endComponent(String); additionally the amount
of data which is returned by the component is provided.
Component monitor level = 0 (ConfMonitor.COMPLEVELBASIC)
same functionality than endComponent(String); additionally the amount
of data which is returned by the component is provided
Component monitor level = 0 (ConfMonitor.COMPLEVELBASIC)
same functionality than endComponent(String, int); additionally component
specific properties are provided.
the component specific properties could only be handled if the parameter
jarm/comp/properties/switch=on (default) and if there is there is an
implementation of ICompProperties for this component provided.
Component monitor level = 0 (ConfMonitor.COMPLEVELBASIC)
same functionality than endComponent(String, int); additionally component
specific properties are provided
the component specific properties could only be handled if the parameter
jarm/comp/properties/switch=on (default) and if there is there is an
implementation of ICompProperties for this component provided
Component monitor level = 0 (ConfMonitor.COMPLEVELBASIC)
same functionality than endComponent(String); additionally component
specific properties are provided.
the component specific properties could only be handled if the parameter
jarm/comp/properties/switch=on (default) and if there is there is an
implementation of ICompProperties for this component provided.
Component monitor level = 0 (ConfMonitor.COMPLEVELBASIC)
same functionality than endComponent(String); additionally component
specific properties are provided
the component specific properties could only be handled if the parameter
jarm/comp/properties/switch=on (default) and if there is there is an
implementation of ICompProperties for this component provided
Component monitor level = 0 (ConfMonitor.COMPLEVELBASIC)
same functionality than endRequest(reqName); additionally the
collected data for the request is returned if
retOverview not equal ConfMonitor.REQOVERVIEWNONE
implementation of equals method of Comparator interface
thread name is used for comparison; there is no need to call the method
externally; it is public because of the Comparator interface
Indicates the component monitor level; this level is used if monitoring is
on and tracing is off; if both are switched on the most detailed level
defined for monitoring and tracing is used
could also be done by getProperties()
Indicates the component trace level; this level is used if tracing is
on and monitoring is off; if both are switched on the most detailed level
defined for monitoring and tracing is used
could also be done by getProperties()
when a component overview has to be provided this method is called
if there are component specific condensed properties in order to transform
these properties into a component independant form
implementing this method you have to fulfill following requirements
- the method has to be stateless
- dataCondensed must not be manipulated
- if you want to have consistent data be aware that there could be
condenseData() calls in parallel -> synchronize it
- be aware that there could be parallel getDataCondensed() calls
guaranteed: dataCondensed !
when a request overview has to be provided this method is called for all
components with individual properties to transform the properties into a
component independant form
implementing this method you have to fulfill following requirements
- dataSingle must not be manipulated
- be aware that there could be parallel getDataSingle() calls
no synchronization with other calls necessary because there can't be a
conflict with setting dataSingle (is done in endComponent() of IMonitor)
guaranteed: dataSingle !
Returns the monitor object of the current thread (created by
a former getRequestMonitor() call);
if there was not such a call a new monitoring object is created
(userName and reqName is only used in this case);
It is recommended to pass a monitor object through other layers of the
application because this would save getRequestMonitor() calls;
An implementation of this interface has to be provided to JARM via
ConfMonitor.registerDataRecipient to allow JARM to check whether
trace data has to be collected (isTraceOn()) and to deliver this data via
notifyAtRequestEnd().
trace data is delivered only if following conditions are true:
- trace data is collected right from the beginning of the request;
this is done if there is at least one data recipient whose check function
isTraceOn(user, request) delivers true at request start
- if the condition above is true every data recipient whose check function
isTraceOn(user, request, duration, outData) delivers true at request end
is provided with trace data
method is called at the beginning of a request to check whether
trace data should be collected during the request by JARM;
this could be data which is collected by JARM anyway but also
additional information; therefore this call is made at the beginning
of the request; whether the data is delivered or not is finally decided
at the end of the request via isTraceOn(user, request, duration, outData)
parameter name for setting an upper limit of components for a request;
if the limit is reached the next startComponent call to the monitor handle
will end the request.
parameter name for setting an upper limit of components for a request;
if the limit is reached the next endRequest call will end the request
even if the name does not match.
number of requests since reqFirstTS or
resetReqTS (if a request reset was done); this timestamp is also used
for all other request specific accumulated values unless otherwise
documented
reset collected monitoring data
reset user data (criterion: ConfMonitor.RESETUSERS):
the accumulated user data is resetted; data which is being collected in
currently open requests or in requests which are finished but not yet
condensed is not touched
reset component data (criterion: ConfMonitor.RESETCOMPONENTS):
the accumulated component data is resetted; data which is being collected in
currently open requests or in requests which are finished but not yet
condensed is not touched; component attributes like description and the
interface for component specific properties are not changed
reset request data (criterion: ConfMonitor.RESETREQUESTS):
the accumulated request data is resetted; data which is being collected in
currently open requestsis not touched; different to the reset of components
and users the requests which are finished but not yet condensed are
deleted
reset all data (criterion: ConfMonitor.RESETALL):
combination of all cases above
reset collected monitoring data
reset user data (criterion: ConfMonitor.RESETUSERS):
the accumulated user data is resetted; data which is being collected in
currently open requests or in requests which are finished but not yet
condensed is not touched
reset component data (criterion: ConfMonitor.RESETCOMPONENTS):
the accumulated component data is resetted; data which is being collected in
currently open requests or in requests which are finished but not yet
condensed is not touched; component attributes like description and the
interface for component specific properties are not changed
reset request data (criterion: ConfMonitor.RESETREQUESTS):
the accumulated request data is resetted; data which is being collected in
currently open requestsis not touched; different to the reset of components
and users the requests which are finished but not yet condensed are
deleted
reset all data (criterion: ConfMonitor.RESETALL):
combination of all cases above
reset collected monitoring data
reset user data (criterion: ConfMonitor.RESETUSERS):
the accumulated user data is resetted; data which is being collected in
currently open requests or in requests which are finished but not yet
condensed is not touched
reset component data (criterion: ConfMonitor.RESETCOMPONENTS):
the accumulated component data is resetted; data which is being collected in
currently open requests or in requests which are finished but not yet
condensed is not touched; component attributes like description and the
interface for component specific properties are not changed
reset request data (criterion: ConfMonitor.RESETREQUESTS):
the accumulated request data is resetted; data which is being collected in
currently open requestsis not touched; different to the reset of components
and users the requests which are finished but not yet condensed are
deleted
reset all data (criterion: ConfMonitor.RESETALL):
combination of all cases above
reset collected monitoring data
reset user data (criterion: ConfMonitor.RESETUSERS):
the accumulated user data is resetted; data which is being collected in
currently open requests or in requests which are finished but not yet
condensed is not touched
reset component data (criterion: ConfMonitor.RESETCOMPONENTS):
the accumulated component data is resetted; data which is being collected in
currently open requests or in requests which are finished but not yet
condensed is not touched; component attributes like description and the
interface for component specific properties are not changed
reset request data (criterion: ConfMonitor.RESETREQUESTS):
the accumulated request data is resetted; data which is being collected in
currently open requestsis not touched; different to the reset of components
and users the requests which are finished but not yet condensed are
deleted
reset all data (criterion: ConfMonitor.RESETALL):
combination of all cases above
The component monitor level for the request is set.
The level could only be set right at the beginning of a request
before the first component is started.
The component monitor level for the request is set.
The level could only be set right at the beginning of a request
before the first component is started.
Set implementation for component specific properties; if the properties
are already set for this component it could not be overwritten;
without an implementation component specific properties are not handled
If the user name was not known when the request was started it
could be set by this call afterwards; if a user name is already bound
to the request the call is skipped
If the user name was not known when the request was started it
could be set by this call afterwards; if a user name is already bound
to the request the call is skipped
information about the tasks which build up the request;
array just provided for compatibility with future versions;
currently one request is made up by one task;
information about the tasks which build up the request;
array just provided for compatibility with future versions;
currently one request is made up by one task;
includes CPU time information