This section describes the Com-plete accounting facility.
This document covers the following topics:
The Com-plete accounting facility provides data that can be used to distribute the costs of the teleprocessing system back to the user (terminal user, department, etc.).
Com-plete accumulates user resource utilization information on a user-by- user basis and writes this information to the System Management Facilities (SMF) file. All records are optional. You must specify which records to create and/or not to create by using the SMFRECORDS sysparm.
The user ID accounting control block is created immediately after a user ID successfully logs onto Com-plete. The information from the logon information block is used to initially create this block.
The user ID account control block is maintained for the duration of the user ID's logon cycle (until *ULOG OFF). Information from this control block is used to create the SMF accounting control records.
Please refer to thedeliverd Com-plete source copy book CCUAB for details of the contents of this control block and the offsets of the various fields.
The SMF accounting control records contain information about the resources used by a user ID during the life of the user ID cycle from *ULOG ON to *ULOG OFF. The information in each control block is initially taken from the user ID accounting control block.
Five types of resource utilization records can be written to the SMF file:
For assembler programs, the accounting records are mapped by member CCCSMF in the distribution source library.
This record is written after each successful ULOG ON operation. It contains the standard SMF prefix and the following information:
Terminal Identification number;
User ID;
Account number;
Control status;
Authorization code;
Message and printout spooling class codes.
This record is written each time an application program or Com-plete utility program terminates. It contains the standard SMF prefix and the following information:
Terminal Identification number;
Thread number;
User ID;
Account number;
Control status;
Privileged program indicator;
Abnormal termination indicator;
Time program was invoked;
Program name;
Total CPU time since ULOG ON;
Total thread occupancy time;
Total number of EXCPs since ULOG ON. For z/OS systems, the SMF record contains the number of SIOs instead of the number of EXCPs. The number of SIOs is the number of times the z/OS channel scheduler was entered;
Total count of data, in bytes, transferred to and from the terminal since ULOG ON;
Total count of data in bytes, sent via message switching or printout spooling since ULOG ON;
Total number of transactions for the session (number of times in the thread) including the use of the rollout function.
This record is written once every n minutes for each user logged onto Com-plete, unless a program termination record has been written in the last n minutes or no activity has occurred for the user ID in the last n minutes. The checkpoint record contains the same information as the program termination record.
The checkpoint interval n is an installation variable defined at Com-plete initialization time using the SMFsysparm.
COM-PASS also produces a checkpoint record whenever a program is suspended. The checkpoint record can be examined at offset 63 (decimal). A "blank" (X'40') indicates a normal checkpoint. An "S" (X'E2') indicates a COM-PASS suspend record.
This record is written after a user issues a ULOG OFF. The ULOG OFF record contains the same information as the program termination record.
This record contains the standard SMF prefix followed by a freely definable area available for your use. The first half-word of this area must contain the length of this user-specific area (incl. length field).
In order to write the user SMF record, you must call (via TCALL) entry point ALSRBSMF (in COMREG) with the following registers:
Register | |
---|---|
0 | User SMF record (will be appended to common part before being written). |
1 | 4 (user record indicator). |
2 | COMREG. |
4 | THCB. |
5 | TIB. |
13 | 18-F/W save area. |
14 | Return address. |
15 | Entry point. |
This section describes the fields and their contents that are written in the Com-plete SMF records. The offsets of the fields in the record can be determined from the DSECT produced by the CCCSMF copybook.
The following fields are found in all SMF records written by Com-plete.
Field Name | Description of Contents | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
SFCRDWL | Contains the length of this record in binary format. | |||||||||||
SFCSYSI | Contains the system ID. The following equates are available in the CCCSMF copybook and can be compared to the contents of this field to determine the operating system. | |||||||||||
|
||||||||||||
SFCTYPE | SMF record number as provided in the Com-plete sysparms in binary format. | |||||||||||
SFCTIME | Time the record was written as a binary value representing the number 1/100ths of seconds since the start of the day. | |||||||||||
SFCDATE | As a packed decimal value representing the date in Julian format when the record was written (i.e. 00YYDDDS). | |||||||||||
SFCESYSI | Contains the 4 byte character SMF system ID. | |||||||||||
SFCUSERI | Contains the 8 byte Com-plete user ID of the user for whom the record was generated. | |||||||||||
SFCACCT | Contains the twelve byte account number related to the user. | |||||||||||
SFCAUTH | Contains the user's authorisation code as a binary number. | |||||||||||
SFCCNTL | Contains an indicator as to the control status of the user. The following values are possible: | |||||||||||
|
||||||||||||
SFCSNEWF | Contains an indicator to determine whether the record is of the newer type written by Com-plete 4.5 and subsequent releases or not. When it contains x'ff', the record has been written by Com-plete 4.5 or a subsequent release. Otherwise it has been written by a pre 4.5 release. | |||||||||||
SFCSMC | Contains the class codes in numeric format (i.e. 1, 2 etc.) which this user is allowed to send. | |||||||||||
SFCRMC | Contains the class codes in numeric format (i.e. 1, 2, etc.) which this user is allowed to receive. | |||||||||||
SFCCTYPE | Contains an indicator as to the type of Com-plete SMF record being dealt with. The CCCSMF copybook contains the following equates which can be used with this field to determine the record type. | |||||||||||
|
||||||||||||
SFCSUSER | Contains an indicator as to the user type. The CCCSMF copybook contains the following equates which can be used to determine the user type. | |||||||||||
|
||||||||||||
SFCLUNAM | Contains the terminal name of the terminal on which the user was running. For VTAM terminals, this is the VTAM LU name, for batch users, this is the name of the batch job. | |||||||||||
SFCPATCH | The patch character for the Com-plete where this user was running. | |||||||||||
SFCVRM | Contains the Version, release and SM level respectively of the Com-plete from which the record was written. | |||||||||||
SFCTID | Contains the terminal number in binary of the terminal on which this user was running. |
The following fields are only found in the program termination, checkpoint and logoff records
Field Name | Description of Contents | |||||
---|---|---|---|---|---|---|
SFTPROG | Contains the eight byte alpha-numeric name of the last program the user ran. This is not applicable in the logoff record. | |||||
SFTPRIV | Contains the privileged status of the program (except in the logoff record). It can contain the following values. | |||||
|
||||||
SFTABEND | Contains the termination status of the program. It can have the following values. | |||||
|
||||||
SFTTHRN | Contains the number of the thread in binary format where the program ran. | |||||
SFTTRANS | Contains the number of times the user has been marked as being eligible to roll out. This is not necessarily the number of user rollouts as a user program is only rolled out if another user program needs to use the thread. | |||||
SFTCPU | Contains the total amount of CPU used by the user in 1/100ths of seconds. | |||||
SFTCPUTU | Contains the total amount of CPU used by the user in machine timer units. | |||||
SFTELAP | Contains the total length of time the user spent in a Com-plete thread 1/100ths of seconds. | |||||
SFTEXCP | Contains the total number of I/Os issued by or on behalf of the user. | |||||
SFTDATA | Contains the total amount of data in bytes which was sent to and received from the terminal. | |||||
SFTMESG | Contains the total amount of data in bytes which was spooled by this user using the Com-plete printout spooling facilities. | |||||
SFTLFTIM | Contains the time that this program was started either directly via Com-plete or via a FETCH. It is a binary number which represents the number of 1/100ths of seconds since the start of the day (i.e. time '00:00'). | |||||
SFTUSER | This field is copied from the UAB field available to users called UABUSER. | |||||
SFTTRAN# | Contains the number assign to this program when it was started. When a program is started in Com-plete via a Com-plete or using a fetch, it is assigned a unique number which starts with one for the first program started. | |||||
SFTRTIME | This contains the total of all response times for this user in milliseconds. A "response time" is the time between when Com-plete has associated an incoming user data stream with a terminal (i.e. when the user presses | ) and the time when Com-plete determines that the output has been provided back to the user.|||||
SFTRTIM# | This contains a count of the number of "response times" which Com-plete has seen for this user. This number is basically the number of times this user has pressed | at the terminal.|||||
SFTADAC | Contains the total number of Adabas calls that this user has issued. | |||||
SFTOPCNT | Contains the total number of Com-plete operations which this user has issued. A Com-plete operation is a MCALL or other operating system function which Com-plete has satisfied internally. An example of an operating system function which Com-plete will satisfy is a LOAD request from a user application program. | |||||
SFTADAET | Contains the total amount of time that the user has been within the Adabas link routine ADALCO. This represents the total elapse time between when the call was issued to Adabas and when the response was received back from Adabas. This number represents the time in milli seconds (1/1000ths). | |||||
SFTADATD | Contains the total amount of time the user has spent in Adabas. This field is accumulated from the ACBDUR field in the Adabas ACB for each Adabas call issued. Please refer to your Adabas documentation for more information on what the ACBDUR field represents and its format. | |||||
SFTTQTIM | Contains the total amount of time this user spent on the Com-plete ready-to-run queue in milli seconds (1/1000ths). | |||||
SFTTQCNT | Contains the number of times that this user was enqueued to the Com-plete ready-to-run queue. |