Previous Topic: 3.3.2 Avoiding UNIX/PCS Duplicate Charging

Next Topic: 3.5 Avoiding CICS 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.