3. IMPLEMENTATION › 3.4 Avoiding SMF Duplicate Charging
3.4 Avoiding SMF Duplicate Charging
Duplicate charging for batch jobs and started tasks can occur
between SMF, IMS, CICS, DB2, and MQSeries because resource
utilization for regions is reported by SMF type 30 records
which populate the SMF journal files as well as by specific
record types which populate journal files for CICS, DB2, IMS,
and MQSeries.
Within SMF itself, duplicate charging can occur by billing
the same unit of work from both the Batch Job Journal
(ACTJBJ) and Batch Program Journal (ACTJBP) files or by
billing APPC work from the APPC Journal (ACTJTP) file and the
Batch Job or Batch Program Journal files. Also, duplicate
charging can occur if print/punch output is charged from both
the Batch Spool Journal (ACTJBS) and the Batch Job Journal
ACTJBJ) files.
In contrast, it is normal to charge for the same work from
the MULC (Measured Usage License Charging) Address Space
Journal File (ACTJBM) and any of the other SMF journal files.
You can use the ACTJBM journal file to surcharge users of
MULC registered products. Any charges from this journal file
are added to charges for the work from the other Batch and
Operations Analyzer journal files.
Avoiding Duplicate Charging Within the SMF Component
----------------------------------------------------
The Rate Table ISPF dialogs prevent duplicate charging within
SMF by not allowing you to activate both the Batch Job and
Batch Program Journal Files if the same units of work are
being charged in each. For example, you can charge batch
from the Batch Program Journal File and TSO from the Batch
Job Journal File, but you cannot charge batch and TSO work
from both journal files.
In addition, the dialogs will not allow you to activate the
APPC TP Resource Journal File and the Batch Job or Batch
Program Journal File if APPC work is being charged in either
of the latter two files.
Avoiding Duplicate Charges from SMF and from Other Sources
----------------------------------------------------------
If you charge for CPU time from the batch job or batch
program files and also charge for CICS, IMS, DB2, or TSO CPU
time in their corresponding journal files, then you must take
care to charge from one or the other source file in each
case. Here is a list of the other source files, their CPU
charging elements, and their journal files.
Comp Source Journal Charging
Code File File Element Description
---- ------ ------ -------- -------------------------
1004 IMSISU ACTJIS ISUCPUTM IMS Total CPU Time
1009 IMSISU ACTJIS ISUDB2TM IMS DB2 CPU Time
1201 DB2DSU ACTJDS DSUTCBTM DB2 TCB CPU Time Class 1
1203 DB2DSU ACTJDS DSUCPUTM DB2 CPU Time Class 1
1411 TSOTSU ACTJTU TSUCPUTM TSO CPU Time consumed
1412 TSOTSU ACTJTU TSUTCBTM TSO TCB CPU Time consumed
1504 CICCSU ACTJCS CSUCPUTM CICS Task CPU Time
1505 CICCSU ACTJCS CSUCPRTM CICS Task CPU Real Time
1508 CICCSU ACTJCS CSUTCBTM CICS TCB CPU Time
2702 MQAMMA ACTJMQ MMACPUTM MQS CPU Time Used
2730 MQATAA ACTJTA TAACPUTM MQS Total CPU Time
2738 MQAQAA ACTJQA QAAQCPTM MQS Total Queue CPU Time
2740 MQBMFA ACTJMF MFACTM MQSeries Message Flow
Total CPU Time
To see more details on each of these other possible charging
algorithms, you should review the following sections of this
guide:
3.2.2 Avoiding DB2 Duplicate Charging
3.5 Avoiding CICS Duplicate Charging
3.6 Avoiding IMS Duplicate charging
3.7.2 Avoiding MQSeries Duplicate Charging
HOW TO AVOID DUPLICATE CHARGING
Do not charge for spool, print or punch output in the Batch
Job Journal (ACTJBJ) file if you also charge from the Batch
Spool Journal (ACTJBS) file.
You can use Rate Table Algorithm Qualification to exclude the
IMS control region, MPP, DBCTL programs, CICS regions, DB2
regions, or MQSeries regions from SMF charging based on their
job or program names.
If you are not familiar with Algorithm Qualification, you
should read section 4.3.1.5 - Qualifying Algorithms.
Specifying Algorithm Qualification by listing specific job or
program names to be avoided is the simpler way to limit
charges. If testing on many program names is required, it
would be well to use Qualification Groups instead.
If you are charging for TSO from the TSOMON ACTJTU Resource
Journal File, then you can use Rate Table Algorithm
Qualification to prevent TSO sessions from being charged in
SMF by explicitly specifying the SUBSYSIDs (@BAT, @STC, @TP,
@OEM and @SAS) to be charged. In other words, the @TSO is
omitted from the list of qualifiers for SUBSYSID.
The following instructions tell you how to use Rate Table
Algorithm Qualification to exclude the desired work.
1) If you are charging from the Batch Job Journal File and
want to exclude IMS, CICS, or DB2 regions, determine the
job names of these regions. Your installation should
have a naming convention that allows you to identify
these jobs or started tasks.
If you are charging from the Batch Program Journal File
and want to exclude IMS, CICS, or DB2 programs, determine
the names of the programs to be excluded.
2) Select Rate Table (Option 3;6 on the Installation
Accounting Primary Options Menu), select the SMF unit if
necessary, and select the ACTJBJ Batch Job or ACTJBP
Batch Program Journal File.
3) If you have not previously done so, select Options 1 and
3 and enter the file and algorithm specifications.
4) Select Algorithm Qualification, Option 4, from the File
Options menu.
TSO sessions will be charged with each algorithm that
has a SUBSYSID value of *ALL, *DEF, or @TSO. You can
prevent TSO sessions from being charged as follows:
o Change each SUBSYSID value of *ALL to @BAT. Then use
the I line command to create additional rows with
values of @STC, @TP, @OEM, and @SAS.
o Change each SUBSYSID value of *DEF to explicitly
specify the work to be charged: @BAT, @STC, @TP, @OEM,
or @SAS. Use the I line command to create additional
rows if necessary.
o Delete any rows with a SUBSYSID value of @TSO.
You can exclude IMS and CICS work from charging as
follows:
o For each algorithm that will be used to charge batch or
started tasks, enter an E in the S/E column and the job
or program name to be excluded in the Workunit column.
You must enter the job name in the ACTJBJ Batch Job
Journal File and the program name in the ACTJBP Batch
Program Journal File.
o The exclude comparisons are generic. For example, a
value of ISMM will exclude all workunits whose names
begin with ISMM, such as ISMM1, ISMM2, etc.
o Use the I line command to create additional rows if you
need to exclude more workunit names.
o As an alternative to listing jobnames or program names
or their generic wildcards, you could employ
Qualification Groups as described in section 4.3.1.5.
Qualification Groups have an advantage when there are
many jobnames or program names that are used in
qualifying.
5) END from Rate Table and submit MAGRUN when requested.
6) Repeat steps 1 through 5 for each additional SMF unit.
A sample qualification panel that excludes all jobs beginning
with IMS or CICS is shown below:
-------------------------- Algorithm Qualification ---------- ROW 3 FROM 22
Command ===> Scroll ===> CSR
Unit: I - COST MANAGEMENT SMF UNIT
Journal file: Batch Job Journal File
Line Commands: I Insert D Delete SCROLL RIGHT TO VIEW COMPLETE WORKUNIT COLUMN
Use groups for SYSID ===> NO Subsysid ===> NO Subtype ===> NO
COSTCTR1 ===> NO Workunit ===> NO
Alg SYS- S Partial
Cmd ID ID Subsysid Subtype COSTCTR1 E Workunit
- --- ---- -------- -------- ------------------------------- --------------
_ JBJ *ALL *ALL *ALL *ALL E IMS__
_ JBJ *ALL *ALL *ALL *ALL E CICS_
____________________________________________________________________________
A sample qualification panel that excludes all jobs beginning
with IMS or CICS and does not charge for TSO sessions is
shown below:
-------------------------- Algorithm Qualification ---------- ROW 3 FROM 22
Command ===> Scroll ===> CSR
Unit: I - COST MANAGEMENT SMF UNIT
Journal file: Batch Job Journal File
Line Commands: I Insert D Delete SCROLL RIGHT TO VIEW COMPLETE WORKUNIT COLUMN
Use groups for SYSID ===> NO Subsysid ===> NO Subtype ===> NO
COSTCTR1 ===> NO Workunit ===> NO
Alg SYS- S Partial
Cmd ID ID Subsysid Subtype COSTCTR1 E Workunit
- --- ---- -------- -------- ------------------------------- --------------
_ JBJ *ALL @BAT *ALL *ALL E IMS
_ JBJ *ALL @BAT *ALL *ALL E CICS
_ JBJ *ALL @STC *ALL *ALL E IMS
_ JBJ *ALL @STC *ALL *ALL E CICS
_ JBJ *ALL @TP *ALL *ALL E IMS
_ JBJ *ALL @TP *ALL *ALL E CICS
_ JBJ *ALL @OEM *ALL *ALL E IMS
_ JBJ *ALL @OEM *ALL *ALL E CICS
_ JBJ *ALL @SAS *ALL *ALL E IMS
_ JBJ *ALL @SAS *ALL *ALL E CICS
____________________________________________________________________________
AVOIDING DUPLICATE CPU TIME CHARGES IN AN ENVIRONMENT WITH
SPECIAL PROCESSORS
There are two types of IBM special processors, zSeries
Application Assist Processor (zAAP) and z9 Integrated
Information Processor (zIIP).
For address spaces, the portion of CPU time spent by an
address space executing on a special processor is kept
separate from the portion of CPU time that is spent by the
same address space while it executed on a standard
processor. The CA MICS data elements that contain the
special processor CPU times are the following:
JOBZPNTM and PGMZPNTM - Normalized zAAP CPU Time
JOBSPNTM and PGMSPNTM - Normalized zIIP CPU Time
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* In the CA MICS/DB2 option, the Accum CPU Time Used on *
* z/OS Spec Eng (DSUCPUZ1) element is the charging *
* element for normalized zIIP and zAAP CPU time. Since *
* there would be overlap with the JOBZPNTM, JOBSPNTM, *
* PGMZPNTM, and PGMSPNTM elements, the normalized *
* specialty engine CPU time should be charged from the *
* SMF or from the DB2 component but not from both. *
* See section 3.2.2 - Avoiding DB2 Duplicate Charging. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
The CPU time spent by an address space that could have
executed on a special processor, but executed on a standard
CP because a special processor was not available, is
considered special processor eligible CPU time. Special
processor eligible CPU time is a subset of TCB CPU Time
(JOBTCBTM and PGMTCBTM) and TCB+SRB CPU Time (JOBCPUTM and
PGMCPUTM). The CA MICS data elements that contain special
processor eligible CPU time are the following:
JOBZACTM and PGMZACTM - zAAP Eligible CPU Time on a CPU
JOBSUCTM and PGMSUCTM - zIIP Eligible CPU Time on a CPU
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* In the CA MICS/DB2 option, the Accumulated CPU Time *
* zIIP Eligible Work (DSUELGZP) is the charging element *
* for the computation code 1261. Since there is overlap *
* between this element and the JOBSUCTM and PGMSUCTM *
* elements, one must take care to avoid duplicate *
* charges. One should also be aware that DSUELGZP is *
* no longer populated beginning with DB2 v10.1. Thus *
* any attempt to have special rates for zIIP or zAAP *
* eligible CPU time should be confined to the BATJOB or *
* BATPGM elements listed above. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
There is a potential for duplicate charging for special
processor eligible CPU time if you want to use a different
rate for eligible CPU time than that used for work that had
to run on the standard processors. It is important to
understand, that if you charge for both special processor
eligible CPU time and the standard TCB time or CPU time, you
will be charging for the special processor eligible CPU time
twice.
If the desire is to charge the same rate for special
processor eligible CPU time as TCB CPU time, it is
recommended you use the computation codes for PGMTCBTM or
PGMCPUTM, and JOBTCBTM or JOBCPUTM.
STEP LEVEL
----------
At the step or interval level, if you want to charge a
different rate for special processor eligible CPU time, and
non-special processor eligible TCB+SRB CPU time, or
non-special processor eligible TCB CPU time, use the
following computation codes:
o Special Processor Eligible CPU Time
COMP
CODE Element Label
---- -------- ------------------------------
0406 PGMZACTM zAAP Eligible CPU Time on a CP
0431 PGMSUCTM zIIP Eligible CPU Time on a CP
o CPU Time Excluding Special Processor Eligible CPU Time
COMP
CODE Element Label
---- -------- -----------------------------------
0409 PGMXCSTM CPU Time without zAAP/zIIP Eligible
The computation of PGMXCSTM is:
PGMCPUTM - (PGMZACTM + PGMSUCTM)
Note - PGMCPUTM is the sum of PGMTCBTM and PGMSRBTM.
o Non-special Processor Eligible TCB CPU Time
COMP
CODE Element Label
---- -------- -----------------------------------
0416 PGMXTSTM TCB time without zIIP/zAAP Eligible
The computation of PGMXTSTM is:
PGMTCBTM - (PGMZACTM + PGMSUCTM)
Note: If you want to charge for non-special processor
eligible CPU time, you must choose either 0409 or 0416.
JOB LEVEL
---------
At the job level, if you want to charge different rates for
special processor eligible CPU time, and non-special
processor eligible TCB+SRB CPU time, or non-special processor
eligible TCB CPU time, use the following computation codes:
o Special Processor Eligible CPU Time
COMP
CODE Element Label
---- -------- ------------------------------
0350 JOBZACTM zAAP Eligible CPU Time on a CP
0370 JOBSUCTM zIIP Eligible CPU Time on a CP
o Non-special Processor Eligible TCB+SRB CPU Time
COMP
CODE Element Label
---- -------- -----------------------------------
0359 JOBXCSTM CPU Time without zAAP/zIIP Eligible
o Non-special Processor Eligible TCB CPU Time
COMP
CODE Element Label
---- -------- -----------------------------------
0360 JOBXTSTM TCB time without zIIP/zAAP Eligible
Note: At the job-level, if you want to charge for
non-special processor eligible CPU time, you must choose
either 0359 or 0360.
CPU Time Usage from Service Units
---------------------------------
With z/OS 1.10(plus OA26832) and above the number of Service
Unit fields in the Performance section of SMF Type 30 record
was expanded to 8 bytes fields equivalent to the existing 4
bytes. This solution is to use Service units since it
provides finer granularity of CPU time usage for chargeback.
Job LEVEL
----------
At the Job level, if you want to charge CPU Time from the
Service Units use the following computation codes:
o CPU Time from Service Units (Job Level)
Comp Charging
Code Element Label
------ --------- ---------------------------------
0050 JOBSRSTM Job SRB CPU Time from Service Units
0051 JOBTCSTM Job TCB CPU Time from Service Units
0052 JOBCPSTM Job TCB+SRB CPU Time from Service Units
Note: If you are planning to charge CPU Time usage out of
Service units at Job level, to avoid duplicate CPU TIME
charging, make sure computation codes 0022, 0023, and 0024
are not selected.
STEP LEVEL
----------
At the step or interval level, if you want to charge CPU Time
from the Service Units use the following computation codes:
o CPU Time from Service Units (Step Level)
Comp Charging
Code Element Label
------ --------- ---------------------------------
0450 PGMSRSTM Step SRB CPU Time from Service Units
0451 PGMTCSTM Step TCB CPU Time from Service Units
0452 PGMCPSTM Step TCB+SRB CPU Time from Service Units
Note: If you are planning to charge CPU Time usage out of
Service units at Step level, to avoid duplicate CPU TIME
charging, make sure computation codes 0422, 0423, and 0424
are not selected.