UserStatistics class

From m204wiki
Revision as of 17:53, 17 December 2010 by Dme (talk | contribs) (Created page with "Intended for performance work, the UserStatistics class is designed to replace $STAT and similar tools that return the values for selected ''Model 204'' User statistics. The Us...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Intended for performance work, the UserStatistics class is designed to replace $STAT and similar tools that return the values for selected Model 204 User statistics.

The UserStatistics constructor takes a snapshot of the user stat block at the time the constructor is invoked. You then use the UserStatistics methods to extract the statistical data from the instantiated object.

The object holds two types of user statistics: Login and Request.

  • Login statistics (also called “Final”) are those that keep data per user since the user's most recent login. The statistics available to the Model 204 $STAT function, as well as the OBJSWAP statistic for Janus SOAP objects, are valid.
  • Request statistics are a combination of:
    • Statistics that keep the current high-water marks for some work tables per user. Model 204 documentation includes these with “since last” statistics.
    • Since last statistics, which keep data per user comprising only the user's most recent work unit (like compilation or evaluation); they are not accumulated.

Login and Request statistics are not mutually exclusive. Both Login and Request data are kept for some activities, so many statistics appear in lists of both types and are valid in all methods that are restricted to one type or the other.

The &SYSMGR and the SirMonR are good sources of information about the available statistics, although not all statistics shown in the SirMonR are included in a UserStatistics object. Where they occasionally differ in spelling the name of a statistic, the &SYSMGR is more likely to have what the UserStatistics methods require.

You can also view all the individual statistics contained in a UserStatistics object by applying the ToString method to it, as follows:

    %statobject:ToString(Zeros=true)

The longstring output from this ToString method invocation displays all the Login statistics followed by all the Request statistics. Note: The ToString method shown above can be applied implicitly: simply print or audit an object variable, and the ToString method is automatically applied to the object. Print %statobject is equivalent to Print %statobject:ToString.

The following is a simple example that shows how much CPU a request uses and how many DKRDs it did:

    b
    %statStart   is object userStatistics
    %statEnd     is object userStatistics
    %statStart = new
     ... processing
    %statEnd   = new
    printText CPU:   {%statEnd:difference(%statStart, 'CPU')}
    printText DKRDs: {%statEnd:difference(%statStart, 'DKRD')}
    end

Specifying a statistic that is not a User statistic, or that is not the type of statistic (Login or Request) that a method calls for, triggers an UnknownStatistic exception (?? refid=unkstat.).

The UserStatistics class methods are described in the following subsections. In the method templates, %ustat is used to represent the object to which the method is being applied, sometimes called the “method object.” Additional conventions are described in ??Notation conventions for methods.

The UserStatistics class is new as of Sirius Mods version 7.3.