Previous Topic: 7.3.8 CICS Processing Thresholds (CICTHRSH)

Next Topic: 7.3.10 Database Space Modeling (DBMODEL)

7.3.9 CICS Multisystem Account Derivation Exit (CICMSAC)


CICS provides a common token to identify transactions that
are executed in an MRO (multiregion option) or ISC
(intersystem communication) environment.  This common token
is known as the unit of work ID, which is stored in the
CA MICS variable CICUOWID.  The CA MICS Analyzer Option for
CICS uses the token variable to sort detail transaction data
and provides you with an exit point during which
accounting-related information from the TOR is propagated to
the AORs and FORs.  The exit is known as the CICS multisystem
account derivation exit.  It is a user exit that you code in
SAS.  The exit is stored in member CICMSAC of
prefix.MICS.PARMS.

You can activate the CICMSAC exit by specifying the MSACCOUNT
statement in prefix.MICS.PARMS(CICOPS).  If MSACCOUNT is
present in CICOPS, then the CICMSAC exit code is included
during the DAY040 step of the DAILY job.  Otherwise, the code
is omitted.  By default, the CICMSAC exit is shipped turned
off.

The purpose of the CICMSAC exit is to reset the CICS
accounting data elements (CICACT1 through CICACT9) in the
AORs and FORs with that of the TOR.  This ensures that MRO
records written for the same transaction are summarized under
identical account code values.  This exit does not collapse
multiple transaction records into one record to show
end-to-end execution.

Prior to calling the CICMSAC exit, the CA MICS Analyzer
Option for CICS first sorts the detail transaction data in
the proper sequence.  To ensure uniqueness, the CA MICS
Analyzer Option for CICS sorts the data by CICNETNM (the
originating system ID known to VTAM) and CICUOWID.  To ensure
that TOR data is sorted ahead of AOR and FOR data, mirror
transaction start time is also used as part of the sort
sequence keys.

To code the CICMSAC exit, you may consider using one of the
commonly used approaches described below.

    o  Changing the accounting fields to correspond directly
       to the accounting fields that were derived for the
       initial transaction.  This approach retains the
       accounting field values on the initial transaction by
       using the statements:

         IF FIRST.CICUOWID THEN DO;
            retain the accounting field values
         END;
         ELSE DO;
            set  the  accounting  fields  equal  to the saved
            values
         END;

    o  Changing the accounting fields to the value of the
       initial transaction, but using one of the accounting
       fields to designate that the transaction was the
       result of an MRO/ISC interaction.

         IF FIRST.CICUOWID THEN DO;
            save the accounting field values
         END;
         ELSE DO;
            set the accounting fields 1-3 equal to the  saved
            values
            CICACT4 = 'MRO';
         END;

You are responsible for testing the accuracy of modifications
to the sample exit routine supplied in the CA MICS Analyzer
Option for CICS distribution libraries.  Be sure to follow
the guidelines for coding exits in Section 4.3 of the System
Modification Guide.  The worksheet for programming the CICS
Multisystem Derivation Exit is shown in Figure 7-8.

You can reference any of the data elements contained in the
CICS monitor data collection records during the CICMSAC exit.
The data elements that are most often used in deriving the
account variables are:

    TRANCODE  - The CICS transaction ID or the translation of
                the identifier as described in the CICS
                Processing Options

    TERMINAL  - CICS terminal identifier

    USERID    - CICS RACF user identification

    CICACT1-CICACT9 - The derived accounting codes

    CICNETNM  - The name of the originating CICS region

    CICUOWID  - The unique identifier for the originating
                transaction

    OPERID    - CICS operator identification from the CICS
                Signon Table (only applicable to releases
                prior to CICS TS)


The following example shows the reassignment of CICS account
code variables based on three account fields.  The third
account field will be set to the value 'MRO' to designate
subsequent transactions associated with an MRO interaction.


    LENGTH USR_ACT1-USR_ACT2 $ 8;
    RETAIN USR_ACT1-USR_ACT2;
    IF CICNETNM NE '  ' THEN DO;
      IF FIRST.CICUOWID THEN DO;
        USR_ACT1 = CICACT1;
        USR_ACT2 = CICACT2;
      END;
      ELSE DO;
        CICACT1  = USR_ACT1;
        CICACT2  = USR_ACT2;
        CICACT3  = 'MRO';
      END;
    END;


+--------------------------------------------------------------------------+ | INSTALLATION PREPARATION WORKSHEET: CICS Multisystem Account Derivation | | | | PARMS Library Member is CICMSAC | | Reference Section: 7.3.9, CA MICS Analyzer Option for CICS Guide | +--------------------------------------------------------------------------+ | | | * VALIDATE FOR VALID SOURCE DATA, IF APPLICABLE: | | | | IF FIRST.CICUOWID THEN DO; | | (save CICACT1 ) ____________________________________________________ | | | | (save CICACT2 ) ____________________________________________________ | | | | (save CICACT-n) ____________________________________________________ | | ELSE DO; | | (replace CICACT1) ____________________________________________________ | | | | (replace CICACT2) ____________________________________________________ | | | | (replace CICACT-n) ____________________________________________________ | | | | END; ____________________________________________________ | | | | | +--------------------------------------------------------------------------+ | ....5...10...15...20...25...30...35...40...45...50...55...60...65...70.. | +--------------------------------------------------------------------------+



 Figure 7-8.  CICS Multisystem Account Derivation Worksheet