Sampling Library Interface

The JADE Object Manager provides a mechanism for sampling data capture by calling user-supplied entry points at different times during normal operation. You can specify the operations that cause calls to the entry points.

The overhead involved in data capturing is proportional to the level of detail required, the amount of processing in the node being sampled, and the amount of processing that your user library performs on each invocation.

For details about direct node sampling and initializing a sampling library (including when direct node sampling using the Process class getRequestStatistics method but no file or TCP/IP output is wanted), see "Direct Retrieval of Node Sampling Statistics", later in this chapter.

The names of the entry points for your user-supplied library are listed in the following table.

Entry Point Invoked…
nodeSampleInfoCb Once, at the time a sampling context begins.
nodeSampleNodeInfoCb Once, at the time a sampling context begins or ends and after (for begins) or before (for ends) the NodeSampleInfoCallBack entry point has been invoked.
nodeSampleProcessInfoCb Every time a process begins or ends and once for every existing process at the time sampling begins.
nodeSampleIntervalCb Every time an individual request interval begins or ends.
nodeSampleIndividualRequestCb Every time an individual request occurs, only within those intervals that requested specific levels of details.
nodeSampleRequestStatisticsCb When it is explicitly requested by using the logRequestStatistics method or when a process ends.
nodeSampleCacheInfoCb When it is explicitly requested by using the logObjectCaches method.
nodeSampleObjectBufferCb When it is explicitly requested by using the logObjectCaches method. It is also invoked every time a cache activity occurs, only within those intervals that requested specific levels of details.

The definitions of these entry points are in the jomSamplingTypes.h file in the include directory on your JADE release medium. In addition, a full example of a user library is provided in the examples\sampling directory. This example library implements the same functionality of the filesmpl library.