

10. MODIFICATION › 10.2 Standard User Exits › 10.2.4 Output Exits
10.2.4 Output Exits
Output exits are invoked just prior to adding the observation
to the DETAIL timespan of the file. These exits can be used
to modify the value of elements or prevent selected
observations from being added.
+-----------------+
| _ U S R S f f f |
+-----------------+
DESCRIPTION:
The _USRSfff exit provides the ability to modify or select
observations immediately prior to output. The files
available (fff) are:
ISY _IA
ISU IAC
_IS INC
IAU IDB
INVOCATION:
These exits are invoked in the information area processing
phase of the DYIMSFM1 or #fffDSUM routines immediately
before output of the file. See Chapter 9 of this guide
for more information.
ACCOUNTING INTERFACE:
No interface is provided.
USES:
The exit allows elements to be modified and observations
to be excluded from processing.
ELEMENTS AVAILABLE:
All elements in the file are available.
CODING RESTRICTIONS:
See the System Modification Guide, Section 4.3.2.2.
+-----------------+
| _ U S R D f f f |
+-----------------+
DESCRIPTION:
The _USRDfff exit provides the ability to calculate the
cost data elements immediately prior to output. The files
and elements available are:
File Element
---- -------
ISU ISUCOST
_IS ISUCOST
IAC IACCOST
INVOCATION:
These exits are invoked in the information area processing
phase of the #fffDSUM routine immediately before output of
the file. See Chapter 9 of this guide for more
information.
ACCOUNTING INTERFACE:
No interface is provided.
USES:
The exit allows the ISUCOST and IACCOST data elements to
be calculated.
ELEMENTS AVAILABLE:
All elements in the file are available. Only the value of
the fffCOST data element may be modified.
CODING RESTRICTIONS:
See the System Modification Guide, Section 4.3.2.2.
+-----------------+
| _ U S R R L I |
+-----------------+
This exit is obsolete. The IMSRLRT exit is available at the
same invocation point and should contain any logic previously
held in _USRRLI.
+-----------------+
| _ U S R X f f f |
+-----------------+
DESCRIPTION:
CA MICS does not support the DETAIL timespan directly for
files that can have many observations. These files are:
ISU, _IS, IAU, _IA, IAC, IDB
In the _USRXfff macro, user exits can be coded to retain
detail observations when detail data is needed. Detail
data for these files can be written to the DETAIL timespan
or to a separate user-defined data set on DASD or on tape.
*************************************************************
* *
* NOTE: If Incremental Update is active, be sure to *
* review the special considerations in Section *
* 10.1.6.1 of this guide before invoking *
* USRXfff exits. *
* *
*************************************************************
AUXILIARY MACROS FOR USE WITH USRXfff MACROS:
Since there is such a large amount of data that is needed
when processing the detail level observations, the IMS
Analyzer divides the observations into two work files:
o The IMSISF work file contains only Fastpath (FP)
EMH-scheduled transaction data for non-BMC MAINVIEW for
IMS Online systems.
o The IMSISW work file contains full function (FF) and
mixed (MM) transaction data for non-BMC MAINVIEW for
IMS Online systems. It contains all transaction data
for non-BMC MAINVIEW for IMS Online systems.
In each example given in the checklist below, the %WRKMERG
macro is used in the SET statement with values ISF or ISW
assigned to WRK for the work files IMSISF or IMSISW.
INVOCATION:
To write DETAIL level data to the DETAIL timespan, use the
checklist below.
___ 1. If the detail level file is to be created in each
IMS unit for the complex, then expand the macro in
sharedprefix.MICS.SOURCE(#IMSEXIT). If the detail
level file is to be written only in some IMS
units, then code the macro in the #IMSEXIT member
of each prefix.MICS.USER.SOURCE library that
requires it. In these cases the macro should be
coded after the %INCLUDE SOURCE(#IMSEXIT) call.
In each example given below, the detail level file
is written to the DETAIL timespan with the ddname
"&IMSX.". However, the detail level file can be
written to a user-defined file on DASD or on tape,
requiring a special ddname in place of "&IMSX."
and a corresponding DD statement in the JCL.
___ 2. Make backup copies of the #IMSEXIT members to be
modified.
___ 3. Review the descriptions of the FILE statement as
provided in Section 4.2.4.2 of the System
Modification Guide (SMG).
___ 4. In sharedprefix.MICS.GENLIB(IMSGENIN), update the
FILE statement for each file to be activated in
the DETAIL timespan. Change the file status from
"N" to "Y". See the System Modification Guide
(SMG), Section 6.2.2.2. To write the file to a
user-defined library, code "N" in the DETAIL
timespan and "E" for the DAYS timespan.
NOTE: To write detail observations for any of
the files, IMSIAC, IMSIAU, IMSISU, IMS_IA, or
IMS_IS, the DAYS timespan must be active for
that file. The DAYS timespan can be made
active by coding an "E" in the DAYS position of
the FILE statement.
___ 5. Update the NAME/NAMX statements in the IMSGENIN
member of sharedprefix.MICS.GENLIB to activate or
deactivate data elements in the DETAIL timespan of
each file that will be activated. Elements that
are in the IMSISU file but not in the IMSIAU and/
or IMSIAC files can be added to either of these
files by copying the NAME or NAMX statements that
follow the IMSISU file statement to a position
under the File statement for IMSIAU or IMSIAC.
The prefix of the element name will need to be IAU
or IAC, depending on where the element is to be
placed. Thus, the ISUINCH element would become
IACINCH in the IMSIAC file. In the same way,
elements under the File IMSISF can be defined in
the IMS_IA (with prefix IAU) or under IMS_IS (with
prefix ISU).
For elements to be active at the detail level of
IMSIAC or IMSIAU, they must be active in the DAYS
timespan of the same file, and the corresponding
elements must be active in the DAYS timespan of
the IMSISW file. Also, for elements to be active
in the detail timespan of IMS_IA, they must be
active in the DAYS timespan of IMS_IA and IMSISF.
When an element is not active in the IMSISU file
and its corresponding elements in the IMSIAC and
IMSIAU files are not active, then it should be
deactivated under the IMSISW file statement to
save DASD space. When an element is not active in
the IMS_IS or IMS_IA files, then its corresponding
element should be turned off under the IMSISF file
to save DASD space. Also, by turning off such
summarizing elements as averages, minima, maxima,
and response time distributions at the detail
level, additional DASD space can be saved.
___ 6. Submit shareprefix.MICS.CNTL(IMSCGEN).
___ 7. To write to the DETAIL.IMSISU file on disk, use
one of the following examples as a model for the
code to be inserted within the _USRXISU macro in
#IMSEXIT from sharedprefix.MICS.SOURCE or from
prefix.MICS.USER.SOURCE.
/*****************************************************/
/*** EXAMPLE ONE ***/
/*** ***/
/*** This will write the file in compressed format ***/
/*** (if compression is on) and will use the KEEP ***/
/*** macro for the IMSISW file. ***/
/*****************************************************/
MACRO _USRXISU
/* CREATE DETAIL USER ACTIVITY FILE - FF */
DATA &IMSX..IMSISU00(KEEP=%%ISWKEEP(TS=DETAIL)
COMPRESS=%%INTRST(CCC=IMS)
LABEL="&ISUSFDF");
SET %%WRKMERG(WRK=ISW,CCC=IMS);
BY %%ISUSEQ(TS=DETAIL);
%%ISULEN(TS=DETAIL);
%%ISUFMT(TS=DETAIL);
%%ISULBL;
RUN;
%
/*****************************************************/
/*** EXAMPLE TWO ***/
/*** ***/
/*** Write DETAIL.IMSISU to disk forcing the ***/
/*** output to compressed format regardless of the ***/
/*** compression option and still using the KEEP ***/
/*** macro for the IMSISW file. If compression is ***/
/*** not desired, then change YES to NO for the ***/
/*** COMPRESS keyword or eliminate the COMPRESS ***/
/*** keyword altogether. ***/
/*****************************************************/
MACRO _USRXISU
/* CREATE DETAIL USER ACTIVITY FILE - FF */
DATA &IMSX..IMSISU00(KEEP=%%ISWKEEP(TS=DETAIL)
COMPRESS=YES LABEL="&ISUSFDF");
SET %%WRKMERG(WRK=ISW,CCC=IMS);
BY %%ISUSEQ(TS=DETAIL);
%%ISULEN(TS=DETAIL);
%%ISUFMT(TS=DETAIL);
%%ISULBL;
RUN;
%
/*****************************************************/
/*** EXAMPLE THREE ***/
/*** ***/
/*** CREATE DETAIL USER ACTIVITY FILE - FF ***/
/*** Write DETAIL.IMSISU to disk providing a ***/
/*** user-written KEEP list, again using file ***/
/*** compression. Any elements in the KEEP list ***/
/*** must be active in the IMSISW file. To turn ***/
/*** off compression, code COMPRESS=NO. ***/
/*****************************************************/
MACRO _USRXISU
/* CREATE DETAIL USER ACTIVITY FILE - FF */
DATA &IMSX..IMSISU00
(KEEP=IMSID PSBNAME TRANSACT STARTTS ENDTS
ISUTRSTM ISUTRANS ISUCPUTM COMPRESS=YES
LABEL="&ISUSFDF");
SET %%WRKMERG(WRK=ISW,CCC=IMS);
BY %%ISUSEQ(TS=DETAIL);
%%ISULEN(TS=DETAIL);
%%ISUFMT(TS=DETAIL);
%%ISULBL;
RUN;
%
___ 8. Use the following as a model for the code to write
the IMS_IS00 file at the detail level. (Techniques
from Step 7 could be used to enhance this macro.)
MACRO _USRX_IS
/* CREATE DETAIL USER ACTIVITY FILE - FP */
DATA &IMSX..IMS_IS00(%%_ISFILE(OP=FILEOPTS,TS=DETAIL)
LABEL="&_ISSFDF");
SET %%WRKMERG(WRK=ISF,CCC=IMS);
BY %%_ISSEQ(TS=DETAIL);
%%_ISLEN(TS=DETAIL);
%%_ISFMT(TS=DETAIL);
%%_ISLBL;
RUN;
%
___ 9. Code the _USRXIAU macro to write the detail data
for IMSIAU00 as follows. (Techniques from Step 7
could be used to enhance this macro.)
MACRO _USRXIAU
/* CREATE DETAIL APPL UNIT FILE - FF */
DATA &IMSX..IMSIAU00(%%IAUFILE(OP=FILEOPTS,TS=DETAIL)
LABEL="&IAUSFDF");
SET %%WRKMERG(WRK=ISW,CCC=IMS,R=IAUREN);
BY %%IAUSEQ(TS=DETAIL);
%%IAULEN(TS=DETAIL);
%%IAUFMT(TS=DETAIL);
%%IAULBL;
RUN;
%
___ 10. Code the _USRX_IA macro to write the detail data
for IMS_IA00 as follows. (Techniques from Step 7
could be used to enhance this macro.)
MACRO _USRX_IA
/* CREATE DETAIL APPL UNIT FILE - FP */
DATA &IMSX..IMS_IA00(%%_IAFILE(OP=FILEOPTS,TS=DETAIL)
LABEL="&_IASFDF");
SET %%WRKMERG(WRK=ISF,CCC=IMS,R=IAUREN);
BY %%_IASEQ(TS=DETAIL);
%%_IALEN(TS=DETAIL);
%%_IAFMT(TS=DETAIL);
%%_IALBL;
RUN;
%
___ 11. To write detail level data for IMSIAC00, code the
_USRXIAC macro as follows. (Techniques from Step
7 could be used to enhance this macro.)
MACRO _USRXIAC
/* CREATE DETAIL USER APPL COUNT */
DATA &IMSX..IMSIAC00(%%IACFILE(OP=FILEOPTS,TS=DETAIL)
LABEL="&IACSFDF");
SET %%WRKMERG(WRK=ISW,CCC=IMS,R=IACREN)
%%WRKMERG(WRK=ISF,CCC=IMS,R=IACREN);
BY %%IACSEQ(TS=DETAIL);
%%IACLEN(TS=DETAIL);
%%IACFMT(TS=DETAIL);
%%IACLBL;
RUN;
%
___ 12. Code the _USRXIDB macro to write detail level data
for the IMSIDB00 file. (Techniques from Step 7
could be used to enhance this macro.)
MACRO _USRXIDB
/* CREATE DETAIL DATABASE ACTIVITY */
DATA &IMSX..IMSIDB00(%%IDBFILE(OP=FILEOPTS,TS=DETAIL)
LABEL="&IDBSFDF");
SET %%WRKMERG(WRK=IDB,CCC=IMS);
BY %%IDBSEQ(TS=DETAIL);
%%IDBLEN(TS=DETAIL);
%%IDBFMT(TS=DETAIL);
%%IDBLBL;
RUN;
%
****************************************************
* Repeat the following steps for each database *
* unit containing the IMS Analyzer. *
****************************************************
___ 13. Adjust the retention values for the DETAIL cycle
for each IMS file in prefix.MICS.PARMS(DBMODEL) so
that the right number of cycles will be retained.
If the detail cycle is to be written to a user-
defined SAS data library, then 00 should be coded
for the detail cycle. See Section 7.3.8.
___ 14. Submit the job in prefix.MICS.CNTL(CYCLEGEN).
ACCOUNTING INTERFACE:
No interface is provided.
USES:
The exits allow the DETAIL fff files to be created along
with specialized data selection to be done. (See SELECTION
CONSIDERATIONS below.)
ELEMENTS AVAILABLE:
All elements in the files are available.
CODING RESTRICTIONS:
See the System Modification Guide, Section 4.3.1.
SELECTION CONSIDERATIONS:
The %ISWSET macro may be called by user exits to reduce
the summarized versions of the IMSISU, IMSIAC, or IMSIAU
files by reducing the IMSISW work file first. Likewise,
the %ISFSET macro can subset the IMSISF work file to
reduce the number of transactions in the summarized
timespans of the IMS_IS, IMSIAC, or IMS_IA files. After
the transactions in the work file are reduced, they will
be reduced in each summary file that is populated from it.
Here is the processing order for the files populated from
IMSISW:
first - IMSIAC (subset in the _USRXIAC exit)
second - IMSISU (subset in the _USRXISU exit)
third - IMSIAU (subset in the _USRXIAU exit)
last - IMSISY
The processing order for files populated from IMSISF is:
first - IMSIAC (subset in the _USRXIAC exit)
second - IMS_IS (subset in the _USRX_IS exit)
third - IMS_IA (subset in the _USRX_IA exit)
last - IMSISY
If subsetting (deleting observations from the IMSISW file)
is done in the _USRXIAC exit, then all the files IMSIAC,
IMSISU, and IMSIAU will have a reduced number of
observations. However, if subsetting takes place in the
_USRXIAU macro, then the IMSIAC and IMSISU files will have
all the observations while the IMSIAU file will have a
reduced number of observations. This same logic applies
to the IMSISF work file selection as well.
Furthermore, the transaction-related fields in the IMSISY
file are populated from a summarization of either the
DAYS.IMS_IS file (if it exists) or the DAYS.IMS_IA file
(if the DAYS.IMSISU file does not exist).
The indirect exit method as explained in the CA MICS
System Modification Guide, Section 4.3.1.2, activates the
selection logic for the %ISWSET and %ISFSET macros. The
exit identifier is ISWSEL for %ISWSET and ISFSEL for
%ISFSET. The following examples show how they are used:
Example 1. Code this in prefix.MICS.USER.SOURCE(#IMSEXIT):
MACRO _USRXIAU
%%ISWSET;
%
%LET ISWSEL = USRSEL1;
USRSEL1 is the name of a member of the same library and
contains conditional logic such as the following:
IF IMSAPU NE TESTAPPL;
Example 2. Code this in prefix.MICS.USER.SOURCE(#IMSEXIT):
MACRO _USRX_IA
%%ISFSET;
%
%LET ISFSEL = USRSEL2;
USRSEL2 is the name of a member of the same library and
contains conditional logic such as the following:
IF IMSAPU NE TESTAPPL;
Copyright © 2014 CA.
All rights reserved.
 
|
|