Invocation sequence sensor specification
The sequence tracer provides a means to connect concrete tracer invocations within a user transaction. It acts as a container for the invocations of all tracers within the user transaction and collects the concrete values of their execution. Thus the information gathered by the sequence tracer, allows to present the sequence of all executed tracers for one user transaction. Depending on the tracers executed, this will give information about the execution time of methods (time sensor) or information about when an object is created during the user transaction. Instrumenting a method with the sequence tracer defines the starting point of a trace. All following sensors that are called, must write the result of the invocation to the sequence tracer temporal storage. No additional sequence tracer has to be defined for the sensor to be included with the sequence.
...
The HookDispatcher class is modified, too, as the core service used by the different sensor types needs to be switched if a record of an invocation sequence is started. Only one invocation sequence can be recorded per thread, so if an invocation sequence should be started, but one is already running, it will just be discarded.
Access interfaces
The CMR provides the following interfaces to access the sequence tracer information.
- interval in which the trace was recorded (it must also be possible to only specify one (start or end) time)
- logical name of the sequence trace
- method name: regular expression of a method name that was recorded in the trace
- class name: regular expression of a class name that was recorded in the trace (meaning that at least one method of this class was recorded in the trace)
- time: the time the trace took to finish. Currently only the ">=" (greater than or equals) has to be implemented
- Multiple selections of the just mentioned search parameters must be possible