Go to Home Page
Questions?
Call 1-800-572-5517
 
  Go to Home Page  
  See all products
  See price schedules
  See manuals, tutorials, articles
  Download a free 30-day trial
  See user testimonials
  About Pacific Systems Group
 
 
SMF Tools
  See SMF Record Layouts
  See Sample SMF Reports
  Learn How to Export SMF Data
  Download Free SMF Reporting Software (30 days)
 
One of the greatest SMF record parsing programming languages I've ever seen. Chief, Large Systems Services Branch, NIH
  Choose Spectrum Writer to add 4GL to your product
  Free 60-Page Book (PDF) - How to Make an SMF Report
Spectrum DCOLLECT Reporter - the 4GL DCOLLECT Report Writer.

Spectrum SMF Writer - the 4GL SMF Report Writer.

SMF Type 102 Record

This table shows the record layout for type 102 SMF records
(DB2 (V8) Performance, Audit, and Monitor).

List of other SMF record layouts available.
List of sample SMF reports.

Purpose: DATABASE 2 (DB2) writes record type 102 to record performance information.


It's easy to report on SMF 102 data! (Jump to sample reports)

SMF Spectrum Writer
We have a low-cost 4GL report writer especially for SMF files. It's called Spectrum SMF Writer.

Spectrum SMF Writer handles the difficult SMF record parsing for you automatically. You just specify which fields you want to see.

Spectrum SMF Writer also converts the arcane date and time fields and reformats them into an attractive report.

Plus, Spectrum SMF Writer can export SMF data as comma delimited files to use on your PC.
 
Try It FREE Now!

The Spectrum Writer definitions for the SMF type 102 record below are based on the description provided by IBM in its "MVS Systems Management Facilities (SMF)" manual and/or DSECTs mapped by its Assembler macros.

 

Spectrum SMF Writer
File Definition for Type 102 SMF Records
DB2 (V8) Performance, Audit, and Monitor

***********************************************************************
*          SPECTRUM SMF WRITER -- FILE DEFINITION STATEMENTS          *
*  SMF TYPE 102 RECORD - "DB2 (V8) PERFORMANCE, AUDIT, AND MONITOR"   *
***********************************************************************
OPTION: MISSOFFSET /* TREAT OFFSET ERRORS (99999) LIKE MISSING DATA */
OPTION: STCKADJ(0) /* NO GMT TO LOCAL CONVERSION - DURATIONS*/

**********************************************************************
* SMF  102 DB2 PERFORMANCE/SERVICEABILITY RECORD SECTION MAPPING  V8 *
*(SEE SYSTEM PLANNING AND ADMINISTRATION GUIDE FOR ADDITIONAL DETAIL)*
**********************************************************************
*                                                                    *
* ------------- NOTE TO SPECTRUM SMF WRITER CUSTOMERS. ------------- *
*                                                                    *
* THIS RECORD LAYOUT DEFINES ALL OF THE HEADERS PLUS THE DATA        *
* SECTIONS OF THE MOST COMMONLY USED IFCIDS. THERE ARE HUNDREDS      *
* OF OTHER IFCIDS WHICH WE HAVE NOT DEFINED HERE, IN ORDER TO KEEP   *
* THE RECORD LAYOUT MANAGEABLE.                                      *
*                                                                    *
* IF YOU NEED DATA FROM A DIFFERENT IFCID AND DO NOT FEEL            *
* COMFORTABLE DEFINING IT YOURSELF, JUST CONTACT US AND WE WILL      *
* BE HAPPY TO HELP YOU.                                              *
*                                                                    *
**********************************************************************
*   DSECT   MACRO      *  DESCRIPTION OF SECTIONS IN RECORD          *
*                                                                    *
*  NOTE: FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA            *
*--------------------------------------------------------------------*
*   SM102   DSNDQWSP   *  SMF HEADER SECTION                         *
*--------------------------------------------------------------------*
*                      * INDIVIDUAL IFCID FOLLOWS
*                      *
*   QWT0    DSNDQWT0   *  SELF DEFINING SECTION - NOTE: USE OFFSETS
*                      *   IN QWT0 TO GET TO THE FOLLOWING SECTIONS
*                      *   BECAUSE THEIR EXACT POSITION VARIES
*--------------------------------------------------------------------
*                      * FOLLOWING SECTIONS BEGIN ON A WORD BOUNDARY
*                      * PRODUCT SECTION. THIS SECTION NORMALLY
*                      * APPEARS AT THE END OF RECORD.
*   QWHS    DSNDQWHS   *   STANDARD HEADER ALWAYS APPEARS
*    QWHC   DSNDQWHC   *    CORRELATION HEADER MAY APPEAR
*    QWHT   DSNDQWHT   *    TRACE HEADER MAY APPEAR
*    QWHU   DSNDQWHU   *    CPU  HEADER MAY APPEAR
*    QWHD   DSNDQWHD   *    DISTRIBUTED HEADER MAY APPEAR
*    QWHA   DSNDQWHA   *    DATA SHARING HEADER MAY APPEAR
*                      *
********************************************************************
*
FLD: QWSP     LEN(4) TYPE(BIN) DISP(0)
*/*****************************************************************/
*/*       SMF COMMON HEADER MAPPING MACRO FOR PERFORMANCE SMF 102 */
*/*****************************************************************/
FLD: SM102BKE LEN(4) DISP(0)   /*END OF BLOCK ADDRESS WHEN COLLECTING*/
*                                 DATA                               */
FLD: SM102LEN LEN(2) DISP(0)      /*SM102 TOTAL LENGTH*/
FLD: SM102SGD LEN(2) DISP(2)      /*ZZ BYTES*/
FLD: SM102FLG LEN(1) DISP(4)      /*SYSTEM INDICATOR*/
FLD: SM102RTY LEN(1) DISP(5)      /*RECORD TYPE X'66'*/
FLD: SM102TME LEN(4) TYPE(B-SECS) DISP(6) DEC(2)
                                  /*TIME SMF MOVED RECORD*/
FLD: SM102DTE TYPE(P-CYYDDD) DISP(10)         /*DATE SMF MOVED RECORD*/
FLD: SM102SID LEN(4) DISP(14)     /*SYSTEM ID (SID)*/
FLD: SM102SSI LEN(4) DISP(18)     /*SUBSYSTEM ID*/
FLD: SM102STF LEN(1) DISP(22)     /*RESERVED*/
FLD: SM102RI  LEN(1) DISP(23)     /*RESERVED*/
FLD: SM102SEQ LEN(4) DISP(24)     /*RESERVED*/
FLD: SM102BUF LEN(4) DISP(24)     /*TEMPORARY POINTER TO BUFFER AREA*/
FLD: SM102END LEN(1) DISP(28)    /*START OF THE SELF DEFINING SECTION*/
*
***********************************************************************
**** QWT0     DSECT
***********************************************************************

FLD: QWT0     DISP(0) LEN(1) OFFSET(28)
*
* /*  PRODUCT SECTION FOR DATA BASE STATISTICS CONTAINS THE
*       STANDARD HEADER MAPPED BY DSNDQWHS
*
*    THE NUMBER OF DATA SECTIONS IS VARIABLE AND INDICATED IN
*       THE STANDARD HEADER (QWHSNSDA)                               */
*
*/**IMPORTANT PARSING INFORMATION*****IMPORTANT PARSING INFORMATION****
*                                                                     *
* The length field for any triplet (offset,length,number of data      *
* sections) can legally be zero with a non-zero 'offset' and a        *
* non-zero 'number of data sections'.  If such a case occurs, it      *
* would indicate that this section is a varying length repeating      *
* group. A varying length repeating group is a series of related data *
* blocks with differing lengths. This is typically, if not always,    *
* the result of varying length long name fields in the data block.    *
*                                                                     *
* It is important to note that if there is a non-zero 'offset'        *
* combined with a zero 'length' and zero 'number of data sections'    *
* this should be interpreted as a NULL data section and NOT a varying *
* length repeating group. A NULL data section is defined by a zero    *
* 'length' and 'number of data sections'.                             *
*                                                                     *
* In order to parse a varying length repeating group, the following   *
* steps should be taken:                                              *
* 1. Follow the offset pointer to find the first member of the group. *
* 2. Each member will be mapped as follows:                           *
*    <2 byte member length>                              *
*                                                                     *
*    The length of the first member will be in the 2 bytes pointed    *
*    to by the offset pointer.  It is important to note that the      *
*    data section for the first member will start 2 bytes past the    *
*    offset pointer.                                                  *
* 3. Subsequent members can be found by advancing the pointer         *
*    (length of current member + 2 bytes) forward.  These members     *
*    will also be formatted as <2 byte length>.          *
*    Again, it is important to note that the data section starts 2    *
*    bytes past the beginning of the member.                          *
* 4. The number of members in the repeating group will be held in     *
*    the corresponding 'number of data sections' field in the         *
*    self-defining section.                                           *
* An example of a record would be as follows:                         *
*                                                                     *
*Offset    Hex Data                                                   *
*------    -----------------------------------                        *
*00000000: 08520000 1E650059 67560104 139FF3F0                        *
*00000010: F9F0E5F9 F1C10100 00000000 00000758                        *
*00000020: 00FA0001 0000004C 00060001 00000054                        *
*00000030: 00000003 0000050C 002C0003 00000590                        *
*00000040: 00400003 00000650 00580003 00030001                        *
*00000050: 00030000 01860001 002EE2E3 D3C5C3F1                        *
*00000060: 40404040 40404040 4040C3D6 D3D3C1D7                        *
*...                                                                  *
*000001D0: 00000000 00000000 00000000 01A60002                        *
*000001E0: 002AE2E3 D3C5C3F1 40404040 40404040                        *
*...                                                                  *
*00000380: 00000000 01860003 002EE2E3 D3C5C3F1                        *
*00000390: 40404040 40404040 4040C3D6 D3D3E2D7                        *
*...                                                                  *
*00000500: 4040C3D6 D3D3E2D7 D5404040 00000040                        *
*...                                                                  *
*                                                                     *
*In this example, the self defining sections begin at 0x1C.  Data     *
*section 2's self defining section shows an offset of 0x54, a         *
*length of 0x00, and 3 members in the group.  This indicates this     *
*is a varying length repeating group.  At offset 0x54, the length     *
*of the first member is present 0x186.  The first member's data       *
*begins at offset 0x56.  Member 2 can be found by moving 0x186        *
*bytes + 0x54 (the offset to the first member) + 2 bytes (the         *
*length of the first member's length field) = 0x1DC.  At this         *
*offset, we can see the length of the 2nd member of the repeating     *
*group, 0x1A6.  Data for member 2 can be found at 0x1DE.              *
*By advancing 0x1A6 + 2, the 3rd member can be found at 0x384.        *
*The length of the 3rd member is 0x186 and the 3rd member's data      *
*begins at 0x386.  Since the self-defining section indicates there    *
*are only 3 members in this varying length group, no more             *
*data-sections will be present.                                       *
*                                                                     *
****IMPORTANT PARSING INFORMATION*****IMPORTANT PARSING INFORMATION***/
FLD: QWT02PSO LEN(4) TYPE(BIN) DISP(0)
                                  /*OFFSET TO THE PRODUCT SECTION*/
FLD: QWT02PSL LEN(2) TYPE(BIN) DISP(4)
                                  /*LENGTH OF THE PRODUCT SECTION*/
FLD: QWT02PSN LEN(2) TYPE(BIN) DISP(6)   /*NUMBER OF PRODUCT SECTIONS*/
FLD: QWT02R1O LEN(4) TYPE(BIN) DISP(8)   /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R1L LEN(2) TYPE(BIN) DISP(12)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R1N LEN(2) TYPE(BIN) DISP(14)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02R2O LEN(4) TYPE(BIN) DISP(16)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R2L LEN(2) TYPE(BIN) DISP(20)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R2N LEN(2) TYPE(BIN) DISP(22)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02R3O LEN(4) TYPE(BIN) DISP(24)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R3L LEN(2) TYPE(BIN) DISP(28)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R3N LEN(2) TYPE(BIN) DISP(30)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02R4O LEN(4) TYPE(BIN) DISP(32)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R4L LEN(2) TYPE(BIN) DISP(36)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R4N LEN(2) TYPE(BIN) DISP(38)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02R5O LEN(4) TYPE(BIN) DISP(40)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R5L LEN(2) TYPE(BIN) DISP(44)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R5N LEN(2) TYPE(BIN) DISP(46)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02R6O LEN(4) TYPE(BIN) DISP(48)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R6L LEN(2) TYPE(BIN) DISP(52)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R6N LEN(2) TYPE(BIN) DISP(54)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02R7O LEN(4) TYPE(BIN) DISP(56)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R7L LEN(2) TYPE(BIN) DISP(60)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R7N LEN(2) TYPE(BIN) DISP(62)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02R8O LEN(4) TYPE(BIN) DISP(64)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R8L LEN(2) TYPE(BIN) DISP(68)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R8N LEN(2) TYPE(BIN) DISP(70)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02R9O LEN(4) TYPE(BIN) DISP(72)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02R9L LEN(2) TYPE(BIN) DISP(76)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02R9N LEN(2) TYPE(BIN) DISP(78)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02RAO LEN(4) TYPE(BIN) DISP(80)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02RAL LEN(2) TYPE(BIN) DISP(84)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02RAN LEN(2) TYPE(BIN) DISP(86)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02RBO LEN(4) TYPE(BIN) DISP(88)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02RBL LEN(2) TYPE(BIN) DISP(92)  /*LENGTH OF THE DATA SECTION*/
FLD: QWT02RBN LEN(2) TYPE(BIN) DISP(94)     /*NUMBER OF DATA SECTIONS*/
FLD: QWT02RCO LEN(4) TYPE(BIN) DISP(96)  /*OFFSET TO THE DATA SECTION*/
FLD: QWT02RCL LEN(2) TYPE(BIN) DISP(100) /*LENGTH OF THE DATA SECTION*/
FLD: QWT02RCN LEN(2) TYPE(BIN) DISP(102)    /*NUMBER OF DATA SECTIONS*/
FLD: QWT02RDO LEN(4) TYPE(BIN) DISP(104) /*OFFSET TO THE DATA SECTION*/
FLD: QWT02RDL LEN(2) TYPE(BIN) DISP(108) /*LENGTH OF THE DATA SECTION*/
FLD: QWT02RDN LEN(2) TYPE(BIN) DISP(110)    /*NUMBER OF DATA SECTIONS*/
FLD: QWT02REO LEN(4) TYPE(BIN) DISP(112) /*OFFSET TO THE DATA SECTION*/
FLD: QWT02REL LEN(2) TYPE(BIN) DISP(116) /*LENGTH OF THE DATA SECTION*/
FLD: QWT02REN LEN(2) TYPE(BIN) DISP(118)    /*NUMBER OF DATA SECTIONS*/
FLD: QWT02RFO LEN(4) TYPE(BIN) DISP(120)
                                /*OFFSET TO THE DATA SECTION TU3100IF*/
FLD: QWT02RFL LEN(2) TYPE(BIN) DISP(124)
                                /*LENGTH OF THE DATA SECTION TU3100IF*/
FLD: QWT02RFN LEN(2) TYPE(BIN) DISP(126)
                                  /*NUMBER OF DATA SECTIONS TU3100IF*/
FLD: QWT02RGO LEN(4) TYPE(BIN) DISP(128) /*OFFSET TO THE DATA SECTION*/
FLD: QWT02RGL LEN(2) TYPE(BIN) DISP(132) /*LENGTH OF THE DATA SECTION*/
FLD: QWT02RGN LEN(2) TYPE(BIN) DISP(134)    /*NUMBER OF DATA SECTIONS*/
FLD: QWT02END LEN(1) DISP(136)    /*END OF THE SELF DEFINING SECTION*/
*
***********************************************************************
**** QWHS     DSECT
***********************************************************************

COMP: QWHS_OFFSET =
           WHEN(SM102RTY=102 AND QWT02PSN > 0) ASSIGN(QWT02PSO)
           ELSE                                ASSIGN(99999)
FLD: QWHS     DISP(0) LEN(1) OFFSET(QWHS_OFFSET)
*
*
***********************************************************************
***                                                                  **
*** INSTRUMENTATION STANDARD HEADER DATA IN PRODUCT SECTION          **
***                                                                  **
***********************************************************************
*
FLD: QWHSLEN  LEN(2) TYPE(BIN) DISP(0)
                                  /*LENGTH OF THE STANDARD HEADER*/
FLD: QWHSTYP  LEN(1) DISP(2)      /*HEADER TYPE*/
*
*  **              HEADER TYPE CONSTANTS                             **
COMP: QWHSHS01 = 1                /*..STANDARD HEADER*/
COMP: QWHSHC02 = 2                /*..CORRELATION HEADER*/
COMP: QWHSHT04 = 4                /*..TRACE HEADER*/
COMP: QWHSHU08 = 8                /*..CPU HEADER*/
COMP: QWHSHD16 = 16               /*..DISTRIBUTED HEADER*/
COMP: QWHSHA32 = 32               /*..DATA SHARING HEADER*/
FLD: QWHSRMID LEN(1) DISP(3)      /*RESOURCE MANAGER ID*/
FLD: QWHSIID  TYPE(HALF) DISP(4)  /*IFCID*/
FLD: QWHSRELN LEN(2) DISP(6)      /*RELEASE NUMBER AREA*/
FLD: QWHSNSDA LEN(1) TYPE(BIN) DISP(6)
                                  /*NUMBER OF SELF DEFINING AREAS*/
*
FLD: QWHSRN   LEN(1) DISP(7)      /*RELEASE INDICATOR NUMBER HEX*/
*
FLD: QWHSACE  LEN(4) TYPE(BIN) DISP(8)
                                  /*ACE ADDRESS DISPATCH UNIT ADDRESS*/
FLD: QWHSSSID LEN(4) DISP(12)     /*SUBSYSTEM NAME*/
FLD: QWHSSTCK TYPE(STCKTIME) DISP(16)   /*STORE CLOCK VALUE OF HEADER*/
*                                 For data sharing, this is the sysplex
*                                 timer value.
*
* *********************************************************************
* * NOTE- THE FOLLOWING SEQUENCE NUMBERS ARE UNIQUE WITHIN A SINGLE   *
* * SUBSYSTEM INSTANCE AND ARE INITIALIZED TO ZERO ON RESTART.        *
* * BECAUSE OF MP CONSIDERATIONS THE NUMBERS MAY NOT ALWAYS BE        *
* * IN ASCENDING ORDER.                                               *
* *********************************************************************
*
FLD: QWHSISEQ LEN(4) DISP(24)     /*SEQUENCE NUMBER FOR IFCID*/
FLD: QWHSWSEQ LEN(4) DISP(28)     /*SEQUENCE NUMBER FOR DESTINATION*/
FLD: QWHSMTN  LEN(4) DISP(32)     /*ACTIVE TRACE NUMBER MASK*/
FLD: QWHSLOCN LEN(16) DISP(36)    /*%U LOCAL LOCATION NAME*/
*                                   Truncated if QWHSLOCN_OFF^=0
FLD: QWHSLWID LEN(24) DISP(52)    /*LUWID*/
FLD: QWHSNID  LEN(8) DISP(52)     /*NETWORK ID*/
FLD: QWHSLUNM LEN(8) DISP(60)     /*LUNAME*/
FLD: QWHSLUUV LEN(6) DISP(68)     /*UNIQUENESS VALUE*/
FLD: QWHSLUCC LEN(2) TYPE(BIN) DISP(74)                /*COMMIT COUNT*/
FLD: QWHSFLAG LEN(1) DISP(76)     /*Flags*/
COMP: QWHS_UNICODE = X'80'        /*%U fields contain Unicode (UTF 8)*/
FLD: QWHSLOCN_OFF TYPE(HALF) DISP(78)           /*Offset from QWHS to*/
*                                   LOCAL LOCATION NAME
*                                   If QWHSLOCN truncated
FLD: QWHSSUBV TYPE(HALF) DISP(80)
                                /*THE SUBVERSION FOR THE BASE RELEASE*/
FLD: QWHSEND  LEN(1) DISP(82)     /*END OF STANDARD HEADER*/
*
*
*
***********************************************************************
**** QWHSLOCN_D   DSECT           Use if QWHSLOCN_OFF^=0
***********************************************************************

COMP: QWHSLOCN_D_OFFSET =
           WHEN(QWHS_OFFSET <> 99999 AND QWHSLOCN_OFF <> 0)
                          ASSIGN(QWHS_OFFSET + QWHSLOCN_OFF)
           ELSE           ASSIGN(99999)
FLD: QWHSLOCN_D DISP(0) LEN(1) OFFSET(QWHSLOCN_D_OFFSET)
                                  /*Use if QWHSLOCN_OFF^ 0*/
*
FLD: QWHSLOCN_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QWHSLOCN_VAR LEN(128) DISP(2)/*%U LOCAL LOCATION NAME*/
*
***THE FOLLOWING VALUES DEFINE THE IFCID IN QWHSIID                  **
***                          RMID: DESCRIPTION:                      **
COMP: QWHS0000 = 0                /*..DEFAULT NORMAL TRACE RECORDS*/
COMP: QWHS0001 = 1                /*26 ..SYSTEM STATISTICS*/
COMP: QWHS0002 = 2                /*26 ..DATA BASE STATISTICS*/
COMP: QWHS0003 = 3                /*26 ..ACCOUNTING*/
*
***********************************************************************
*    SOME OR ALL OF THESE HEADERS MAY NOW FOLLOW THE STD HEADER:
*    QWHC    DSNDQWHC  *  CORRELATION HEADER PRESENT ON ACCOUNTING
*    QWHT    DSNDQWHT  *  TRACE HEADER MAY APPEAR
*    QWHU    DSNDQWHU  *  CPU HEADER MAY APPEAR
*    QWHD    DSNDQWHD  *  DISTRIBUTED HEADER PRESENT ON ACCOUNTING
*    QWHA    DSNDQWHA  *  DATA SHARING HEADER
***********************************************************************
COMPUTE: PSHDR_MAX_OFFSET = QWT02PSO + QWT02PSL /* -> PAST ALL HDRS*/
*
***********************************************************************
* DEFINE JUST THE LENGTH AND TYPE OF THE 2ND HEADER SECTION PRESENT   *
***********************************************************************
COMPUTE: PSHDR_2_TEST_OFFSET = QWT02PSO + QWHSLEN  
COMPUTE: PSHDR_2_OFFSET =
  WHEN(PSHDR_2_TEST_OFFSET >= PSHDR_MAX_OFFSET) ASSIGN(99999)
  ELSE  ASSIGN(PSHDR_2_TEST_OFFSET)
FIELD:   PSHDR_2_LEN DISP(0) LEN(2) TYPE(BIN) OFFSET(PSHDR_2_OFFSET)
FIELD:   PSHDR_2_TYP DISP(2) LEN(1) TYPE(BIN)
*

***********************************************************************
* DEFINE JUST THE LENGTH AND TYPE OF THE 3RD SECTION PRESENT          *
***********************************************************************
COMPUTE: PSHDR_3_TEST_OFFSET = PSHDR_2_OFFSET + PSHDR_2_LEN
COMPUTE: PSHDR_3_OFFSET =
  WHEN(PSHDR_3_TEST_OFFSET >= PSHDR_MAX_OFFSET) ASSIGN(99999)
  ELSE  ASSIGN(PSHDR_3_TEST_OFFSET)
*
FIELD:   PSHDR_3_LEN DISP(0) LEN(2) TYPE(BIN) OFFSET(PSHDR_3_OFFSET)
FIELD:   PSHDR_3_TYP DISP(2) LEN(1) TYPE(BIN)
*
***********************************************************************
* DEFINE JUST THE LENGTH AND TYPE OF THE 4TH SECTION PRESENT          *
***********************************************************************
COMPUTE: PSHDR_4_TEST_OFFSET = PSHDR_3_OFFSET + PSHDR_3_LEN
COMPUTE: PSHDR_4_OFFSET =
  WHEN(PSHDR_4_TEST_OFFSET >= PSHDR_MAX_OFFSET) ASSIGN(99999)
  ELSE  ASSIGN(PSHDR_4_TEST_OFFSET)
*
FIELD:   PSHDR_4_LEN DISP(0) LEN(2) TYPE(BIN) OFFSET(PSHDR_4_OFFSET)
FIELD:   PSHDR_4_TYP DISP(2) LEN(1) TYPE(BIN)
*
*
***********************************************************************
* DEFINE JUST THE LENGTH AND TYPE OF THE 5TH SECTION PRESENT          *
***********************************************************************
COMPUTE: PSHDR_5_TEST_OFFSET = PSHDR_4_OFFSET + PSHDR_4_LEN
COMPUTE: PSHDR_5_OFFSET =
  WHEN(PSHDR_5_TEST_OFFSET >= PSHDR_MAX_OFFSET) ASSIGN(99999)
  ELSE  ASSIGN(PSHDR_5_TEST_OFFSET)
*
FIELD:   PSHDR_5_LEN DISP(0) LEN(2) TYPE(BIN) OFFSET(PSHDR_5_OFFSET)
FIELD:   PSHDR_5_TYP DISP(2) LEN(1) TYPE(BIN)
*
************************************************************************
* DEFINE JUST THE LENGTH AND TYPE OF THE 6TH SECTION PRESENT          *
***********************************************************************
COMPUTE: PSHDR_6_TEST_OFFSET = PSHDR_5_OFFSET + PSHDR_5_LEN
COMPUTE: PSHDR_6_OFFSET =
  WHEN(PSHDR_6_TEST_OFFSET >= PSHDR_MAX_OFFSET) ASSIGN(99999)
  ELSE  ASSIGN(PSHDR_6_TEST_OFFSET)
*
FIELD:   PSHDR_6_LEN DISP(0) LEN(2) TYPE(BIN) OFFSET(PSHDR_6_OFFSET)
FIELD:   PSHDR_6_TYP DISP(2) LEN(1) TYPE(BIN)
*
*


***********************************************************************
**** QWHA     DSECT
***********************************************************************

COMP: QWHA_OFFSET =
           WHEN(PSHDR_2_TYP = QWHSHA32)  ASSIGN(PSHDR_2_OFFSET)
           WHEN(PSHDR_3_TYP = QWHSHA32)  ASSIGN(PSHDR_3_OFFSET)
           WHEN(PSHDR_4_TYP = QWHSHA32)  ASSIGN(PSHDR_4_OFFSET)
           WHEN(PSHDR_5_TYP = QWHSHA32)  ASSIGN(PSHDR_5_OFFSET)
           WHEN(PSHDR_6_TYP = QWHSHA32)  ASSIGN(PSHDR_6_OFFSET)
           ELSE                          ASSIGN(99999)
FLD: QWHA     DISP(0) LEN(1) OFFSET(QWHA_OFFSET)
*
*     /**************************************/
*     /*INSTRUMENTATION DATA SHARING HEADER */
*     /**************************************/
*
FLD: QWHALEN  LEN(2) TYPE(BIN) DISP(0)             /*LENGTH OF HEADER*/
FLD: QWHATYP  LEN(1) DISP(2)      /*TYPE OF HEADER DATA SHARING*/
*                         /*   NAME - QWHSHA32                       */
FLD: QWHAMEMN LEN(8) DISP(4)      /*DB2 MEMBER NAME*/
*                         /*   WITHIN A DB2 DATA SHARING GROUP, EACH */
*                         /*   MEMBER DB2 HAS A NAME.                */
FLD: QWHADSGN LEN(8) DISP(12)     /*DB2 DATA SHARING GROUP NAME*/
FLD: QWHAEND  LEN(1) DISP(20)


***********************************************************************
**** QWHC     DSECT
***********************************************************************

COMP: QWHC_OFFSET =
           WHEN(PSHDR_2_TYP = QWHSHC02)  ASSIGN(PSHDR_2_OFFSET)
           WHEN(PSHDR_3_TYP = QWHSHC02)  ASSIGN(PSHDR_3_OFFSET)
           WHEN(PSHDR_4_TYP = QWHSHC02)  ASSIGN(PSHDR_4_OFFSET)
           WHEN(PSHDR_5_TYP = QWHSHC02)  ASSIGN(PSHDR_5_OFFSET)
           WHEN(PSHDR_6_TYP = QWHSHC02)  ASSIGN(PSHDR_6_OFFSET)
           ELSE                          ASSIGN(99999)
FLD: QWHC     DISP(0) LEN(1) OFFSET(QWHC_OFFSET)
*
*/*****************************************************************/
*/*                                                               */
*/*             INSTRUMENTATION CORRELATION DATA                  */
*/*                                                               */
*/*****************************************************************/
*
FLD: QWHCLEN  LEN(2) TYPE(BIN) DISP(0)
                                  /*LENGTH OF THE CORRELATION HEADER*/
FLD: QWHCTYP  LEN(1) DISP(2)      /*TYPE OF HEADER CORRELATION 2*/
FLD: QWHCAID  LEN(8) DISP(4)      /*%U AUTHORIZATION ID*/
*                                  /*   Truncated if QWHCAID_OFF^=0  */
FLD: QWHCCV   LEN(12) DISP(12)    /*CORRELATION ID VALUE*/
FLD: QWHCCN   LEN(8) DISP(24)
                      /*CONNECTION NAME (NOT VALID ON END OF MEMORY &*/
*                        REFLECTS THE MVS HOME ASID CONNECTION NAME) */
FLD: QWHCPLAN LEN(8) DISP(32)     /*PLAN NAME*/
FLD: QWHCOPID LEN(8) DISP(40)     /*%U ORIGINAL OPERATOR ID*/
*                                  /*   Truncated if QWHCOPID_OFF^=0 */
FLD: QWHCATYP LEN(4) TYPE(BIN) DISP(48) /*CONNECTING SYSTEM TYPE CODE*/
FLD: QWHCTOKN LEN(22) DISP(52)    /*ACCOUNTING TOKEN*/
FLD: QWHCRES2 LEN(2) DISP(74)     /*RESERVED*/
FLD: QWHCEUID LEN(16) DISP(76)    /*THE END USER'S USERID AT THE*/
*                                  /* USER'S WORKSTATION.            */
*                                  /*   Truncated if QWHCOPID_OFF^=0 */
FLD: QWHCEUTX LEN(32) DISP(92)    /*THE END USER'S TRANSACTION NAME.*/
FLD: QWHCEUWN LEN(18) DISP(124)   /*THE END USER'S WORKSTATION NAME.*/
*
FLD: QWHCAID_OFF TYPE(HALF) DISP(142)           /*Offset from QWHC to*/
*                                  /*   AUTHORIZATION ID             */
*                                  /*   If QWHCAID truncated         */
FLD: QWHCOPID_OFF TYPE(HALF) DISP(144)          /*Offset from QWHC to*/
*                                  /*   ORIGINAL OPERATOR ID         */
*                                  /*   If QWHCOPID truncated        */
FLD: QWHCEUID_OFF TYPE(HALF) DISP(146)          /*Offset from QWHC to*/
*                                  /*   THE END USER'S USERID        */
*                                  /*   If QWHCEUID truncated        */
FLD: QWHCEND  LEN(4) TYPE(BIN) DISP(148)
*
*
***********************************************************************
**** QWHCAID_D    DSECT            /* Use if QWHCAID_OFF^=0          */
***********************************************************************

COMP: QWHCAID_D_OFFSET =
           WHEN(QWHC_OFFSET <> 99999 AND QWHCAID_OFF <> 0)
                    ASSIGN(QWHC_OFFSET + QWHCAID_OFF)
           ELSE     ASSIGN(99999)
FLD: QWHCAID_D DISP(0) LEN(1) OFFSET(QWHCAID_D_OFFSET)
                                  /*Use if QWHCAID_OFF^ 0*/
FLD: QWHCAID_LEN TYPE(HALF) DISP(0)   /*Lenght of the following field*/
FLD: QWHCAID_VAR LEN(128) DISP(2) /*%U AUTHORIZATION ID*/
*
*
***********************************************************************
**** QWHCOPID_D   DSECT            /* Use if QWHCOPID_OFF^=0         */
***********************************************************************

COMP: QWHCOPID_D_OFFSET =
           WHEN(QWHC_OFFSET <> 99999 AND QWHCOPID_OFF <> 0)
                    ASSIGN(QWHC_OFFSET + QWHCOPID_OFF)
           ELSE     ASSIGN(99999)
FLD: QWHCOPID_D DISP(0) LEN(1) OFFSET(QWHCOPID_D_OFFSET)
                                  /*Use if QWHCOPID_OFF^ 0*/
FLD: QWHCOPID_LEN TYPE(HALF) DISP(0)  /*Lenght of the following field*/
FLD: QWHCOPID_VAR LEN(128) DISP(2)/*%U ORIGINAL OPERATOR ID*/
*
*
***********************************************************************
**** QWHCEUID_D   DSECT            /* Use if QWHCEUID_OFF^=0         */
***********************************************************************

COMP: QWHCEUID_D_OFFSET =
           WHEN(QWHC_OFFSET <> 99999 AND QWHCEUID_OFF <> 0)
                    ASSIGN(QWHC_OFFSET + QWHCEUID_OFF)
           ELSE     ASSIGN(99999)
FLD: QWHCEUID_D DISP(0) LEN(1) OFFSET(QWHCEUID_D_OFFSET)
                                  /*Use if QWHCEUID_OFF^ 0*/
FLD: QWHCEUID_LEN TYPE(HALF) DISP(0)  /*Lenght of the following field*/
FLD: QWHCEUID_VAR LEN(128) DISP(2)/*THE END USER'S USERID AT THE*/
*
*/*****************************************************************/
*/*      CONNECTION SYSTEM TYPE CONSTANTS                         */
*/*****************************************************************/
*
COMP: QWHCTSO = X'1'              /*TSO FOREGROUND AND BACKGROUND*/
COMP: QWHCDB2C = X'2'             /*DB2 CALL ATTACH*/
COMP: QWHCDLIB = X'3'             /*DL/I BATCH*/
COMP: QWHCCICS = X'4'             /*CICS ATTACH*/
COMP: QWHCIMSB = X'5'             /*IMS ATTACH BMP*/
COMP: QWHCIMSM = X'6'             /*IMS ATTACH MPP*/
COMP: QWHCDUW = X'7'              /*DB2 PRIVATE PROTOCOL*/
COMP: QWHCRUW = X'8'              /*DRDA PROTOCOL*/
COMP: QWHCICTL = X'9'             /*IMS CONTROL REGION*/
COMP: QWHCTBMP = X'A'             /*IMS TRANSACTION BMP*/
COMP: QWHCUTIL = X'B'             /*DB2 UTILITIES*/
COMP: QWHCTRRS = X'C'             /*RRSAF ATTACH*/
***********************************************************************
**** QWHT     DSECT
***********************************************************************

COMP: QWHT_OFFSET =
           WHEN(PSHDR_2_TYP = QWHSHT04)  ASSIGN(PSHDR_2_OFFSET)
           WHEN(PSHDR_3_TYP = QWHSHT04)  ASSIGN(PSHDR_3_OFFSET)
           WHEN(PSHDR_4_TYP = QWHSHT04)  ASSIGN(PSHDR_4_OFFSET)
           WHEN(PSHDR_5_TYP = QWHSHT04)  ASSIGN(PSHDR_5_OFFSET)
           WHEN(PSHDR_6_TYP = QWHSHT04)  ASSIGN(PSHDR_6_OFFSET)
           ELSE                          ASSIGN(99999)
FLD: QWHT     DISP(0) LEN(1) OFFSET(QWHT_OFFSET)
*     /*INSTRUMENTATION TRACE HEADER DATA  */
FLD: QWHTLEN  LEN(2) TYPE(BIN) DISP(0)             /*LENGTH OF HEADER*/
FLD: QWHTTYP  LEN(1) DISP(2)      /*TYPE OF HEADER TRACE*/
FLD: QWHTFLG0 LEN(1) DISP(3)      /*FLAGS*/
COMP: QWHTALFG = X'20'            /*ON DATA USES ALET TOKEN*/
FLD: QWHTTID  TYPE(HALF) DISP(4)  /*ID SPECIFIED DSNWTRC MACRO*/
FLD: QWHTTAG  LEN(1) DISP(6)      /*TAG SPECIFIED DSNWTRC MACRO*/
FLD: QWHTFUNC LEN(1) DISP(7)      /*FUNC SPECIFIED DSNWTRC MACRO*/
FLD: QWHTEB   LEN(4) TYPE(BIN) DISP(8)                   /*EB ADDRESS*/
FLD: QWHTPASI TYPE(HALF) DISP(12) /*PASID EPAR*/
*  /*FOLLOWING FIELDS BELONG TO CALLERS MODULE WHICH INVOKED TRACE*/
FLD: QWHTR14A TYPE(HALF) DISP(14) /*REGISTER 14 ASID*/
FLD: QWHTR14  LEN(4) TYPE(BIN) DISP(16)                 /*REGISTER 14*/
FLD: QWHTR15  LEN(4) TYPE(BIN) DISP(20)                 /*REGISTER 15*/
FLD: QWHTR0   LEN(4) TYPE(BIN) DISP(24)                  /*REGISTER 0*/
FLD: QWHTR1   LEN(4) TYPE(BIN) DISP(28)                  /*REGISTER 1*/
FLD: QWHTEXU  LEN(4) TYPE(BIN) DISP(32)
                                  /*ADDRESS OF MVS EXECUTION UNIT*/
FLD: QWHTDIM  TYPE(HALF) DISP(36) /*NUMBER OF DATA ITEMS*/
FLD: QWHTHASI TYPE(HALF) DISP(38) /*HOME ASID*/
*  /*THE FOLLOWING FIELDS REPEAT FOR EACH  DATA ITEM              */
FLD: QWHTDATA LEN(4) TYPE(BIN) DISP(40)         /*ADDRESS OF THE DATA*/
FLD: QWHTFLAG TYPE(HALF) DISP(44) /*FLAGS IN THE TRACE LIST*/
FLD: QWHTDATL TYPE(HALF) DISP(46) /*LENGTH OF THE DATA*/
FLD: QWHTEND  LEN(4) TYPE(BIN) DISP(48)
FLD: QWHTALET LEN(4) TYPE(BIN) DISP(48)   /*ALET TOKEN FOR DATA FIELD*/


***********************************************************************
**** QWHU     DSECT
***********************************************************************

COMP: QWHU_OFFSET =
           WHEN(PSHDR_2_TYP = QWHSHU08)  ASSIGN(PSHDR_2_OFFSET)
           WHEN(PSHDR_3_TYP = QWHSHU08)  ASSIGN(PSHDR_3_OFFSET)
           WHEN(PSHDR_4_TYP = QWHSHU08)  ASSIGN(PSHDR_4_OFFSET)
           WHEN(PSHDR_5_TYP = QWHSHU08)  ASSIGN(PSHDR_5_OFFSET)
           WHEN(PSHDR_6_TYP = QWHSHU08)  ASSIGN(PSHDR_6_OFFSET)
           ELSE                          ASSIGN(99999)
FLD: QWHU     DISP(0) LEN(1) OFFSET(QWHU_OFFSET)
*     /*INSTRUMENTATION CPU HEADER DATA  */
FLD: QWHULEN  LEN(2) TYPE(BIN) DISP(0)             /*LENGTH OF HEADER*/
FLD: QWHUTYP  LEN(1) DISP(2)     /*TYPE OF HEADER CPU MAPPED QWHSHU08*/
FLD: QWHUCPU  TYPE(STCKTIME) DISP(4)
                               /*CPU time of the currently dispatched*/
*                      /* execution unit (TCB or SRB).  This    */
*                      /* time includes CPU consumed on an IBM  */
*                      /* ZIIP.  Note: A given ACE token may    */
*                      /* run under one or more MVS dispatchable*/
*                      /* execution units. Thus the CPU time for*/
*                      /* a given ACE may decrease between      */
*                      /* events.  Binary zero indicates        */
*                      /* CPU time was not available.           */
FLD: QWHUCNT  LEN(2) DISP(12)     /*(S) COUNT FIELD RESERVED*/
FLD: QWHUEND  LEN(1) DISP(14)


***********************************************************************
**** QWHD     DSECT
***********************************************************************

COMP: QWHD_OFFSET =
           WHEN(PSHDR_2_TYP = QWHSHD16)  ASSIGN(PSHDR_2_OFFSET)
           WHEN(PSHDR_3_TYP = QWHSHD16)  ASSIGN(PSHDR_3_OFFSET)
           WHEN(PSHDR_4_TYP = QWHSHD16)  ASSIGN(PSHDR_4_OFFSET)
           WHEN(PSHDR_5_TYP = QWHSHD16)  ASSIGN(PSHDR_5_OFFSET)
           WHEN(PSHDR_6_TYP = QWHSHD16)  ASSIGN(PSHDR_6_OFFSET)
           ELSE                          ASSIGN(99999)
FLD: QWHD     DISP(0) LEN(1) OFFSET(QWHD_OFFSET)
*/********************************************************************/
*/*             INSTRUMENTATION DISTRIBUTED DATA                     */
*/********************************************************************/
*
FLD: QWHDLEN  LEN(2) TYPE(BIN) DISP(0)
                                  /*LENGTH OF THE DISTRIBUTED HEADER*/
FLD: QWHDTYP  LEN(1) DISP(2)      /*TYPE OF HEADER DISTRIBUTED 16*/
FLD: QWHDRQNM LEN(16) DISP(4)
                         /*%U REQUESTER LOCATION NAME BLANK IF HEADER*/
*                            IS WRITTEN AT APPLICATION REQUESTER SITE
*                            THE NAME BY WHICH DB2 KNOWS THE APPLI-
*                            REQUESTER
*                            Truncated if QWHDRQNM_OFF^=0
FLD: QWHDTSTP LEN(8) DISP(20)     /*TIMESTAMP FOR DBAT TRACE RECORDS*/
FLD: QWHDSVNM LEN(16) DISP(28)
                         /*%U SRVNAM PARAMETER OF DRDA EXCSAT COMMAND*/
*                            WHAT A DRDA REQUESTER CALLS ITSELF.
*                            FOR PRIVATE PROTOCOLS SAME AS QWHDRQNM.
*                            ZEROES IF HEADER IS WRITTEN AT
*                            APPLICATION REQUESTER SITE.
*                            Truncated if QWHDSVNM_OFF^=0
FLD: QWHDPRID LEN(8) DISP(44)
                             /*PRDID PARAMETER OF DRDA ACCRDB COMMAND*/
*                            PRODUCT ID OF APPLICATION REQUESTER.
*                            FOR PRIVATE PROTOCOLS THIS FIELD WILL
*                            BE SET TO AN APPROPRIATE PRODUCT ID VALUE
*                            ZEROES IF HEADER IS WRITTEN AT APPLICA-
*                            TION REQUESTER SITE.
FLD: QWHDRQNM_OFF TYPE(HALF) DISP(52)           /*Offset from QWHD to*/
*                            REQUESTER LOCATION NAME
*                            If QWHDRQNM truncated
FLD: QWHDSVNM_OFF TYPE(HALF) DISP(54)              /*Offset from QWHD*/
*                            SRVNAM PARAMETER OF DRDA EXCSAT COMMAND
*                            If QWHDSVNM truncated
FLD: QWHDEND  LEN(4) TYPE(BIN) DISP(56)
*
*
*
***********************************************************************
**** QWHDRQNM_D   DSECT   Use if QWHDRQNM_OFF^=0
***********************************************************************

COMP: QWHDRQNM_D_OFFSET =
           WHEN(QWHD_OFFSET <> 99999 AND QWHDRQNM_OFF <> 0)
                    ASSIGN(QWHD_OFFSET + QWHDRQNM_OFF)
           ELSE     ASSIGN(99999)
FLD: QWHDRQNM_D DISP(0) LEN(1) OFFSET(QWHDRQNM_D_OFFSET)
                                  /*Use if QWHDRQNM_OFF^ 0*/
FLD: QWHDRQNM_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QWHDRQNM_VAR LEN(128) DISP(2)/*%U REQUESTER LOCATION NAME*/
*
*
*
***********************************************************************
**** QWHDSVNM_D   DSECT   Use if QWHDSVNM_OFF^=0
***********************************************************************

COMP: QWHDSVNM_D_OFFSET =
           WHEN(QWHD_OFFSET <> 99999 AND QWHDSVNM_OFF <> 0)
                    ASSIGN(QWHD_OFFSET + QWHDSVNM_OFF)
           ELSE     ASSIGN(99999)
FLD: QWHDSVNM_D DISP(0) LEN(1) OFFSET(QWHDSVNM_D_OFFSET)
                                  /*Use if QWHDSVNM_OFF^ 0*/
FLD: QWHDSVNM_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QWHDSVNM_VAR LEN(128) DISP(2)
                         /*%U SRVNAM PARAMETER OF DRDA EXCSAT COMMAND*/

*********************************************************************
* NOTE - MANY IFC RECORDS HAVE FIELDS IDENTIFIED BY DATA BASE       *
*  ID (DBID) AND PAGESET OBID. SOMETIMES RECORD OBID AND AN INDEX   *
*  OBID ARE ALSO PRESENT (RMID 14 PRODUCED RECORDS).                *
*  IFC ID 0105 AND 0107 IDENTIFY DBID AND PAGESET OBID TO DATA BASE *
*  AND PAGESET NAME. A PAGESET MAY BE A TABLESPACE OR INDEXSPACE    *
*                                                                   *
*  IF ONE DESIRES TO FIND THE PAGESET NAME IN THE DB2 SYSTEM CATALOG*
*  PLACE THE VALUES OF THE  DATA BASE ID (DBID)                     *
*  AND THE PAGESET OBID INTO A SQL WHERE CLAUSE USING               *
*  THE COLUMNS SPECIFIED BELOW FOR RELEASE 2.                       *
*   1.FOR A TABLESPACE THE COLUMNS DBID AND PSID IN                 *
*     SYSIBM.SYSTABLESPACE ARE USED.                                *
*   2.FOR AN INDEX     THE COLUMNS DBID AND ISOBID IN               *
*     SYSIBM.SYSINDEXES ARE USED.                                   *
*                                                                   *
*  IF ONE DESIRES TO FIND THE TABLE NAME ASSOCIATED WITH A RECORD   *
*  OBID THEN PLACE THE VALUES OF THE  DATA BASE ID (DBID)           *
*  AND THE RECORD OBID INTO A SQL WHERE CLAUSE USING                *
*  THE COLUMNS SPECIFIED BELOW FOR RELEASE 2.                       *
*   1.USE THE COLUMNS DBID AND OBID IN                              *
*     SYSIBM.SYSTABLES.                                             *
*                                                                   *
*  IF ONE DESIRES TO FIND THE INDEX NAME ASSOCIATED WITH AN INDEX   *
*  OBID THEN PLACE THE VALUES OF THE  DATA BASE ID (DBID)           *
*  AND THE INDEX OBID INTO A SQL WHERE CLAUSE USING                 *
*  THE COLUMNS SPECIFIED BELOW FOR RELEASE 2.                       *
*   1.USE THE COLUMNS DBID AND OBID IN                              *
*     SYSIBM.SYSINDEXES                                             *
*********************************************************************
*
*  NOTE: FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA
*
COMP: R1_FIX_OFFSET =
  WHEN(SM102RTY<>102 OR QWT02R1N = 0)    ASSIGN(99999)
  ELSE               ASSIGN(QWT02R1O)    /* FIX-LEN SEGS W/O PFX  */

COMP: R1_VAR_OFFSET =
  WHEN(SM102RTY<>102 OR QWT02R1N = 0)    ASSIGN(99999)
  ELSE               ASSIGN(QWT02R1O +2) /* VAR-LEN SEGS W/ PREFIX*/

COMP: R1_MIX_OFFSET =
  WHEN(SM102RTY<>102 OR QWT02R1N = 0)    ASSIGN(99999)
  WHEN(QWT02R1L = 0) ASSIGN(QWT02R1O +2) /* VAR-LEN SEGS W/ PREFIX*/
  ELSE               ASSIGN(QWT02R1O)    /* FIX-LEN SEGS W/O PFX  */


********************************************************************
*   IFC ID 0000 IS RESERVED FOR ENTRY AND EXIT TRACING.   NO MAPPING
*   MACRO IS PROVIDED
*
*   IFC ID 0001 IS RESERVED FOR SYSTEM STATISTICS RECORDS AND IS
*   MAPPED BY MACRO DSNDQWST SUPTYPE=0
*
*   IFC ID 0002 IS RESERVED FOR DATA BASE STATISTICS RECORDS AND IS
*   MAPPED BY MACRO DSNDQWST SUPTYPE=1
*
*   IFC ID 0003 IS RESERVED FOR ACCOUNTING  RECORDS AND IS
*   MAPPED BY MACRO DSNDQWAS
********************************************************************
*
********************************************************************
* IFC ID 0004 FOR RMID 16 RECORDS THE START TRACE OR MODIFY        *
*  TRACE COMMAND.                                                  *
*  THE TRACE COMMAND TEXT IDENTIFIES THE TRACE. IN THE STANDARD    *
*  HEADER IS THE TRACE MASK FOR THIS SPECIFIC TRACE. ALL EVENTS    *
*  TRACED FOR THIS START/MODIFY TRACE COMMAND WILL HAVE THIS       *
*  ENTRY TRACE MASK BIT ON.                                        *
*  IF A TRACE IS STARTED VIA DSNZPARM THEN IFC ID 0004             *
*  MAY NOT APPEAR.                                                 *
********************************************************************
***********************************************************************
**** QW0004   DSECT
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0004, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00004')
***********************************************************************
COMP: QW0004_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>4 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0004   DISP(0) LEN(1) OFFSET(QW0004_OFFSET)
FLD: QW0004BL TYPE(HALF) DISP(0)
                                /*LENGTH OF THE VARIABLE LENGTH ENTRY*/
FLD: QW0004RL TYPE(HALF) DISP(2)
                              /*LENGTH OF THE VARIABLE LENGTH MESSAGE*/
FLD: QW0004MS LEN(128) DISP(4) /*MESSAGE TEXT USED TO START THE TRACE*/
FLD: QW0004CM LEN(8) DISP(4)      /*(S)*/
COMPUTE: EDIT_QW0004MS = #LEFT(QW0004MS,QW0004RL) 
*

********************************************************************
* IFC ID 0005 FOR RMID 16 RECORDS THE STOP TRACE COMMAND           *
*  THE TRACE COMMAND TEXT IDENTIFIES THE TRACE BEING STOPPED       *
*  IF THE TRACE IS BEING STOPPED FOR INTERNAL REASONS IFC ID 0005  *
*  MAY NOT APPEAR.                                                 *
*  AN IFCID 0005 RECORD WILL BE WRITTEN FOR ALL SUCCESSFUL         *
*  INVOCATIONS OF THE MODIFY TRACE COMMAND.                        *
********************************************************************
***********************************************************************
**** QW0005   DSECT
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0005, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00005')
***********************************************************************
COMP: QW0005_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>5 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0005   DISP(0) LEN(1) OFFSET(QW0005_OFFSET)
FLD: QW0005BL TYPE(HALF) DISP(0)
                                /*LENGTH OF THE VARIABLE LENGTH ENTRY*/
FLD: QW0005RL TYPE(HALF) DISP(2)
                              /*LENGTH OF THE VARIABLE LENGTH MESSAGE*/
FLD: QW0005MS LEN(128) DISP(4)  /*MESSAGE TEXT USED TO STOP THE TRACE*/
FLD: QW0005CM LEN(4) TYPE(BIN) DISP(4)                          /*(S)*/
COMPUTE: EDIT_QW0005MS = #LEFT(QW0005MS,QW0005RL) 
*

********************************************************************
* IFC ID 0006 FOR RMID 10 RECORDS THE ID OF THE DATA SET BEFORE    *
*  A READ I/O OPERATION                                            *
********************************************************************
***********************************************************************
**** QW0006   DSECT             IFCID(QWHS0006)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0006, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00006')
***********************************************************************
COMP: QW0006_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>6 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0006   DISP(0) LEN(1) OFFSET(QW0006_OFFSET)  /*IFCID(QWHS0006)*/
FLD: QW0006DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0006OB TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0006BP LEN(4) TYPE(BIN) DISP(4)
                                  /*BUFFER POOL INTERNAL ID (0 49 and*/
*                                   80-89)
FLD: QW0006PN LEN(3) DISP(8)      /*FIRST PAGE NUMBER TO BE READ (for*/
*                                   non large table space)
FLD: QW0006F  LEN(1) DISP(11)     /*FLAG FOR TYPE OF READ*/
COMP: QW0006FS = 'S'              /*SEQUENTIAL PREFETCH REQUEST*/
COMP: QW0006FL = 'L'              /*LIST PREFETCH REQUEST*/
COMP: QW0006FD = 'D'            /*DYNAMIC SEQUENTIAL PREFETCH REQUEST*/
COMP: QW0006FR = 'R'              /*READ REQUEST*/
FLD: QW0006AC LEN(4) TYPE(BIN) DISP(12)      /*ACE TOKEN OF REQUESTOR*/
FLD: QW0006PG LEN(4) TYPE(BIN) DISP(16)
                                  /*FIRST PAGE NUMBER TO BE READ*/
FLD: QW0006FG LEN(1) DISP(20)     /*FLAG FOR TYPE OF TABLE SPACE*/
COMP: QW0006F1 = 'N'              /*NON LARGE TABLE SPACE*/
COMP: QW0006F2 = 'L'              /*NON EA LARGE TABLE SPACE*/
COMP: QW0006F3 = 'V'              /*EA LARGE TABLE SPACE*/
FLD: QW0006PT LEN(4) TYPE(BIN) DISP(24)
                                  /*Partition number or 0 if non*/
*                                 partitioned
*

********************************************************************
* IFC ID 0007 FOR RMID 10 RECORDS THE COMPLETION CODE AFTER        *
*  THE READ I/O OPERATION                                          *
********************************************************************
***********************************************************************
**** QW0007   DSECT             IFCID(QWHS0007)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0007, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00007')
***********************************************************************
COMP: QW0007_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>7 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0007   DISP(0) LEN(1) OFFSET(QW0007_OFFSET)  /*IFCID(QWHS0007)*/
FLD: QW0007MM LEN(4) TYPE(BIN) DISP(0)
                             /*MEDIA MANAGER RETURN CODE 0 SUCCESSFUL*/
FLD: QW0007DB TYPE(HALF) DISP(4)  /*DATABASE ID (DBID)*/
FLD: QW0007OB TYPE(HALF) DISP(6)  /*PAGESET OBID*/
FLD: QW0007AC LEN(4) TYPE(BIN) DISP(8)
                                  /*ACE TOKEN OF ACTUAL REQUESTOR.*/
*                 THIS MAY DIFFER FROM THE ACE TOKEN IN THE STANDARD
*                 HEADER FOR THIS RECORD, EG IN SEQUENTIAL PREFETCH.
FLD: QW0007NP TYPE(HALF) DISP(12) /*NUMBER OF PAGES READ*/

********************************************************************
* DATA SECTION 2 FOR THE IFCID 7 RECORD IS THE ID OF THE PAGES THAT
* ARE PREFETCHED SUCCESSFULLY VIA AN IO OPERATION.  THIS IS ONLY
* PRESENT WHEN QW0006F IS S, L, OR D.  THIS IS A REPEATING GROUP.
********************************************************************
***********************************************************************
**** QW00072   DSECT
***********************************************************************

COMP: QW00072_OFFSET =
           WHEN(QW0007_OFFSET <> 99999 AND QW0007NP > 0)
                    ASSIGN(QW0007_OFFSET + 16)
           ELSE     ASSIGN(99999)
FLD: QW00072  DISP(0) LEN(1) OFFSET(QW00072_OFFSET)
FLD: QW0007PF LEN(4) TYPE(BIN) DISP(0)
                                /*PAGE PREFETCHED VIA AN IO OPERATION*/
*

********************************************************************
* IFC ID 0008 FOR RMID 10 RECORDS THE ID OF THE DATA SET BEFORE    *
*  A WRITE I/O OPERATION (SYNCHRONOUS)                             *
********************************************************************
***********************************************************************
**** QW0008   DSECT IFCID(QWHS0008)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0008, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00008')
***********************************************************************
COMP: QW0008_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>8 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0008   DISP(0) LEN(1) OFFSET(QW0008_OFFSET)  /*IFCID(QWHS0008)*/
FLD: QW0008DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0008OB TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0008WR LEN(4) TYPE(BIN) DISP(4)
                                  /*NUMBER OF PAGES TO BE WRITTEN*/
FLD: QW0008PI LEN(4) TYPE(BIN) DISP(8)
                                  /*NUMBER OF ANTICIPATED PAGE FAULTS*/
*                   REAL STORAGE FRAMES ARE TESTED BEFORE ISSUING WRITE
FLD: QW0008BP LEN(4) TYPE(BIN) DISP(12)
                           /*BUFFER POOL INTERNAL ID (0 49 and 80 89)*/
FLD: QW0008AB LEN(4) TYPE(BIN) DISP(16)
                     /*NUMBER OF ACTIVE NON STEALABLE BUFFERS IN POOL*/
FLD: QW0008DW LEN(4) TYPE(BIN) DISP(20)
                    /*NUMBER OF UPDATED PAGES ON DEFERRED WRITE QUEUE*/
*                    FOR THE BUFFER POOL NAMED BY QW0008BP
FLD: QW0008FC LEN(1) DISP(24)     /*FLAG FOR TYPE OF WRITE*/
COMP: QW0008F1 = 'C'              /*CASTOUT FROM SES TO DISK*/
COMP: QW0008F2 = 'W'           /*NORMAL BUFFER MANAGER DISK WRITE I/O*/
FLD: QW0008PT LEN(4) TYPE(BIN) DISP(28)
                                  /*Partition number or 0 if non*/
*                   partitioned
*

********************************************************************
* IFC ID 0009 FOR RMID 10 RECORDS THE COMPLETION CODE AFTER        *
*  THE WRITE I/O OPERATION (SYNCHRONOUS OR ASYNCHRONOUS)           *
********************************************************************
***********************************************************************
**** QW0009   DSECT          IFCID(QWHS0009)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0009, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00009')
***********************************************************************
COMP: QW0009_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>9 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0009   DISP(0) LEN(1) OFFSET(QW0009_OFFSET)  /*IFCID(QWHS0009)*/
FLD: QW0009MM LEN(4) TYPE(BIN) DISP(0)
                             /*MEDIA MANAGER RETURN CODE 0 SUCCESSFUL*/
*

********************************************************************
* IFC ID 0010 FOR RMID 10 RECORDS THE NAME OF THE DATA SET BEFORE  *
*  A WRITE I/O OPERATION (ASYNCHRONOUS)                            *
********************************************************************
***********************************************************************
**** QW0010   DSECT IFCID(QWHS0010)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0010, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00010')
***********************************************************************
COMP: QW0010_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>10 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0010   DISP(0) LEN(1) OFFSET(QW0010_OFFSET)  /*IFCID(QWHS0010)*/
FLD: QW0010DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0010OB TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0010WR LEN(4) TYPE(BIN) DISP(4)
                                  /*NUMBER OF PAGES TO BE WRITTEN*/
FLD: QW0010PI LEN(4) TYPE(BIN) DISP(8)
                                  /*NUMBER OF ANTICIPATED PAGE FAULTS*/
*                   REAL STORAGE FRAMES ARE TESTED BEFORE ISSUING WRITE
FLD: QW0010BP LEN(4) TYPE(BIN) DISP(12)
                           /*BUFFER POOL INTERNAL ID (0 49 and 80 89)*/
FLD: QW0010AB LEN(4) TYPE(BIN) DISP(16)
                                  /*NUMBER OF ACTIVE BUFFERS IN POOL*/
FLD: QW0010DW LEN(4) TYPE(BIN) DISP(20)
                    /*NUMBER OF UPDATED PAGES ON DEFERRED WRITE QUEUE*/
*                    FOR THE BUFFER POOL NAMED BY QW0010BP
FLD: QW0010FC LEN(1) DISP(24)     /*FLAG FOR TYPE OF WRITE*/
COMP: QW0010F1 = 'C'              /*CASTOUT FROM SES TO DISK*/
COMP: QW0010F2 = 'W'           /*NORMAL BUFFER MANAGER DISK WRITE I/O*/
FLD: QW0010PT LEN(4) TYPE(BIN) DISP(28)
                                  /*Partition number or 0 if non*/
*                   partitioned
*

********************************************************************
* IFC ID 0011 FOR RMID 14 RECORDS RESULTS OF A VALIDATION EXIT CALL*
* WRITTEN FOR EVERY VALIDATED ROW                                  *
********************************************************************
***********************************************************************
**** QW0011   DSECT           IFCID(QWHS0011)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0011, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00011')
***********************************************************************
COMP: QW0011_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>11 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0011   DISP(0) LEN(1) OFFSET(QW0011_OFFSET)  /*IFCID(QWHS0011)*/
FLD: QW0011DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0011PS TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0011OB TYPE(HALF) DISP(4)  /*RECORD OBID*/
FLD: QW0011TM TYPE(STCKTIME) DISP(6)    /*TIME EXIT WAS CALLED (STCK)*/
FLD: QW0011RT LEN(2) DISP(14)     /*EXITS RETURN CODE (EXPLRC1)*/
FLD: QW0011RE LEN(4) DISP(16)     /*EXITS REASON CODE (EXPLRC2)*/
*

********************************************************************
* IFC ID 0012 FOR RMID 14 RECORDS RESULTS OF A EDIT EXIT CALL TO   *
*          ENCODE A RECORD                                         *
* WRITTEN FOR EVERY EDITED ROW                                     *
********************************************************************
***********************************************************************
**** QW0012   DSECT           IFCID(QWHS0012)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0012, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00012')
***********************************************************************
COMP: QW0012_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>12 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0012   DISP(0) LEN(1) OFFSET(QW0012_OFFSET)  /*IFCID(QWHS0012)*/
FLD: QW0012DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0012PS TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0012OB TYPE(HALF) DISP(4)  /*RECORD OBID*/
FLD: QW0012TM TYPE(STCKTIME) DISP(6)    /*TIME EXIT WAS CALLED (STCK)*/
FLD: QW0012RT LEN(2) DISP(14)     /*EXITS RETURN CODE (EXPLRC1)*/
FLD: QW0012RE LEN(4) DISP(16)     /*EXITS REASON CODE (EXPLRC2)*/
*

********************************************************************
* IFC ID 0013 FOR RMID 14 RECORDS INPUT TO  HASH SCAN              *
********************************************************************
***********************************************************************
**** QW0013   DSECT           SELF DEFINING SECTION 1 - QWT02R10
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0013, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00013')
***********************************************************************
COMP: QW0013_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>13 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0013   DISP(0) LEN(1) OFFSET(QW0013_OFFSET)
                                  /*SELF DEFINING SECTION 1 QWT02R10*/
FLD: QW0013DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0013PS TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0013OB TYPE(HALF) DISP(4)  /*RECORD OBID*/

***********************************************************************
**** QW0013S2 DSECT          SELF DEFINING SECTION 2 - QWT02R2O
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0013S2, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 044 2I N | 028 004 2 00013')
***********************************************************************
COMP: QW0013S2_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>13 OR QWT02R2N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R2O)
FLD: QW0013S2 DISP(0) LEN(1) OFFSET(QW0013S2_OFFSET)
                                  /*SELF DEFINING SECTION 2 QWT02R2O*/
*                       NEXT FIELDS DESCRIBE PREDICATE FOR SCAN
*                            REPEATING GROUP - MAXIMUM 10
FLD: QW0013C1 LEN(2) DISP(0)      /*FIRST COLUMN NUMBER*/
FLD: QW0013OP LEN(2) DISP(2)      /*OPERATOR NE,G,GE,LE ETC*/
FLD: QW0013CO LEN(1) DISP(4)      /*CONNECTOR A AND, O OR, BLANK*/
FLD: QW0013TF LEN(1) DISP(5)      /*T TRUE / F FALSE / OR BINARY ZERO*/
FLD: QW0013TP LEN(1) DISP(6)      /*C COLUMN OR V VALUE FOLLOW*/
FLD: QW0013VA LEN(8) DISP(8)      /*FIRST EIGHT BYTES OF VALUE*/
FLD: QW0013C2 LEN(2) DISP(8)      /*SECOND COLUMN NUMBER*/

********************************************************************
* IFC ID 0014 FOR RMID 14 RECORDS END OF HASH SCAN                 *
********************************************************************
***********************************************************************
**** QW0014   DSECT           IFCID(QWHS0014)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0014, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00014')
***********************************************************************
COMP: QW0014_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>14 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0014   DISP(0) LEN(1) OFFSET(QW0014_OFFSET)  /*IFCID(QWHS0014)*/
FLD: QW0014RT LEN(4) TYPE(BIN) DISP(0)     /*RETURN CODE 0 SUCCESSFUL*/
FLD: QW0014RE LEN(4) TYPE(BIN) DISP(4)                          /*(S)*/
*    (S) = FOR SERVICEABILTY
*

********************************************************************
* IFC ID 0015 FOR RMID 14 RECORDS INPUT TO INDEX SCAN OR DIRECT    *
*             RETRIEVAL USING AN INDEX TO RETRIEVE THE DATA        *
*             WHEN PARALLELISM IS IN EFFECT, RECORDS INPUT TO INDEX*
*             SCAN FOR EACH I/O LOGICAL PARTITION (I/O STREAM).    *
********************************************************************
***********************************************************************
**** QW0015   DSECT           SELF DEFINING SECTION 1 - QWT02R10
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0015, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00015')
***********************************************************************
COMP: QW0015_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>15 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0015   DISP(0) LEN(1) OFFSET(QW0015_OFFSET)
                                  /*SELF DEFINING SECTION 1 QWT02R10*/
FLD: QW0015AC LEN(4) TYPE(BIN) DISP(0)     /*CUB TOKEN FOR UNIQUENESS*/
FLD: QW0015DB TYPE(HALF) DISP(4)  /*DATABASE ID (DBID)*/
FLD: QW0015PS TYPE(HALF) DISP(6)  /*PAGESET OBID FOR THE TABLESPACE*/
FLD: QW0015OB TYPE(HALF) DISP(8)  /*RECORD OBID FOR THE TABLE*/
FLD: QW0015IB TYPE(HALF) DISP(10) /*INDEX OBID*/

***********************************************************************
**** QW0015S2 DSECT     SELF DEFINING SECTION 2 - QWT02R2O
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0015S2, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 044 2I N | 028 004 2 00015')
***********************************************************************
COMP: QW0015S2_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>15 OR QWT02R2N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R2O)
FLD: QW0015S2 DISP(0) LEN(1) OFFSET(QW0015S2_OFFSET)
                                  /*SELF DEFINING SECTION 2 QWT02R2O*/
*                       NEXT FIELDS DESCRIBE PREDICATE FOR SCAN
*                        REPEATING GROUP - MAXIMUM 10
FLD: QW0015C1 LEN(2) DISP(0)      /*FIRST COLUMN NUMBER*/
FLD: QW0015OP LEN(2) DISP(2)      /*OPERATOR NE,G,GE,LE ETC*/
FLD: QW0015CO LEN(1) DISP(4)  /*CONNECTOR A AND, O OR, OR BINARY ZERO*/
FLD: QW0015TF LEN(1) DISP(5)      /*T TRUE / F FALSE / OR BINARY ZERO*/
FLD: QW0015TP LEN(1) DISP(6)      /*C COLUMN OR V VALUE FOLLOW*/
FLD: QW0015VA LEN(8) DISP(8)      /*FIRST EIGHT BYTES OF VALUE*/
FLD: QW0015C2 LEN(2) DISP(8)      /*SECOND COLUMN NUMBER*/

********************************************************************
* IFC ID 0016 FOR RMID 14 RECORDS INPUT TO FIRST INSERT            *
* THE SECTION IS LOCATED OUT OF QWT02R1O                           *
********************************************************************
***********************************************************************
**** QW0016   DSECT          IFCID(QWHS0016)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0016, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00016')
***********************************************************************
COMP: QW0016_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>16 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0016   DISP(0) LEN(1) OFFSET(QW0016_OFFSET)  /*IFCID(QWHS0016)*/
FLD: QW0016S1 LEN(4) TYPE(BIN) DISP(0)
                                  /*SELF DEFINING SECTION 1 QWT02R10*/
FLD: QW0016AC LEN(4) TYPE(BIN) DISP(0)     /*CUB TOKEN FOR UNIQUENESS*/
FLD: QW0016DB TYPE(HALF) DISP(4)  /*DATABASE ID (DBID)*/
FLD: QW0016PS TYPE(HALF) DISP(6)  /*PAGESET OBID FOR THE TABLESPACE*/
FLD: QW0016OB TYPE(HALF) DISP(8)  /*RECORD OBID FOR THE TABLE*/
FLD: QW0016WT LEN(2) DISP(10)     /*FILE TYPE, POSSIBLE VALUES ARE:*/
*                              'WF' - WORKFILE
*                              'TT' - TEMPORARY TABLE
*                              'TR' - TRANSITION TABLE FOR TRIGGERS
*                              'NW' - NON-WORKFILE
**********************************************************************
* THE FOLLOWING FIELDS DETAIL INFORMATION ABOUT TRIGGERS            **
**********************************************************************
FLD: QW0016TL LEN(2) DISP(12)     /*TRIGGER LEVEL (UP TO A MAX OF 16)*/
*                              ZERO IF THERE ARE NO TRIGGERS
FLD: QW0016ST LEN(1) DISP(14) /*TRIGGERING SQL TYPE, POSSIBLE VALUES:*/
*                              'I' - INSERT
*                              'U' - UPDATE (INSERT INTO A TRANSITION
*                                     TABLE ON BEHALF OF AN UPDATE)
*                              'D' - DELETE (INSERT INTO A TRANSITION
*                                     TABLE ON BEHALF OF AN DELETE)
*                              blank - NON TRIGGERED STATEMENT
FLD: QW0016RI LEN(1) DISP(15)     /*REFERENTIAL INTEGRITY TYPE*/
*                            INSERT INTO A TRANSITION TABLE FOR
*                            TRIGGERS IS BEING DONE ON BEHALF OF THE
*                            REFERENTIAL INTEGRITY TYPE GIVEN BELOW.
*                             POSSIBLE VALUES ARE:
*                              'S' - SET NULL, VALID WITH QW0016ST
*                                    = 'U' FOR UPDATE
*                              'C' - CASCADE DELETE, VALID WITH
*                                    QW0016ST = 'D' FOR DELETE
*                              blank - NON RI
* ****************** CONSTANTS FOR QW0016WT **************************
COMP: QW0016NW = 'NW'             /*NW NON WORKFILE*/
COMP: QW0016WF = 'WF'             /*WF WORKFILE*/
COMP: QW0016TT = 'TT'             /*TT TEMPORARY TABLE*/
COMP: QW0016TR = 'TR'             /*TR TRANSITION TABLE FOR TRIGGERS*/
COMP: QW0016I = 'I'               /*I INSERT*/
COMP: QW0016U = 'U'               /*U UPDATE*/
COMP: QW0016D = 'D'               /*D DELETE*/
COMP: QW0016C = 'C'               /*C CASCADE DELETE*/
COMP: QW0016S = 'S'               /*S SET NULL*/

********************************************************************
*IFC ID 0017 FOR RMID 14,RECORDS INPUT TO SEQUENTIAL SCAN          *
*           AND WORKFILE SCAN. WRITTEN AT THE BEGINNING OF A       *
*           TABLESPACE OR WORKFILE SCAN.  WHEN PARALLELISM IS IN   *
*           EFFECT, RECORDS INPUT FOR SCAN FOR EACH I/O LOGICAL    *
*           PARTITION (I/O STREAM).                                *
********************************************************************
***********************************************************************
**** QW0017   DSECT          IFCID(QWHS0017)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0017, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00017')
***********************************************************************
COMP: QW0017_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>17 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0017   DISP(0) LEN(1) OFFSET(QW0017_OFFSET)  /*IFCID(QWHS0017)*/
FLD: QW0017S1 LEN(4) TYPE(BIN) DISP(0)
                                  /*SELF DEFINING SECTION 1 QWT02R10*/
FLD: QW0017AC LEN(4) TYPE(BIN) DISP(0)     /*CUB TOKEN FOR UNIQUENESS*/
FLD: QW0017DB TYPE(HALF) DISP(4)  /*DATABASE ID (DBID)*/
FLD: QW0017PS TYPE(HALF) DISP(6)  /*PAGESET OBID*/
FLD: QW0017OB TYPE(HALF) DISP(8)  /*RECORD OBID*/
FLD: QW0017TY LEN(2) DISP(10)     /*SCAN TYPE, POSSIBLE VALUES ARE:*/
*                              'SQ' - SEQUENTIAL SCAN
*                              'WF' - WORKFILE SCAN
*                              'TT' - TEMPORARY TABLE SCAN
*                              'TR' - TRANSITION TABLE SCAN
FLD: QW0017S2 LEN(4) TYPE(BIN) DISP(0)
                                  /*SELF DEFINING SECTION 2 QWT02R2O*/
*                           NEXT FIELDS DESCRIBE PREDICATE FOR SCAN
*                            REPEATING GROUP - MAXIMUM 10
FLD: QW0017C1 LEN(2) DISP(0)      /*FIRST COLUMN NUMBER*/
FLD: QW0017OP LEN(2) DISP(2)      /*OPERATOR NE,G,GE,LE ETC*/
FLD: QW0017CO LEN(1) DISP(4)  /*CONNECTOR A AND, O OR, OR BINARY ZERO*/
FLD: QW0017TF LEN(1) DISP(5)      /*T TRUE / F FALSE / OR BINARY ZERO*/
FLD: QW0017TP LEN(1) DISP(6)      /*C COLUMN OR V VALUE FOLLOW*/
FLD: QW0017VA LEN(8) DISP(8)      /*FIRST EIGHT BYTES OF VALUE*/
FLD: QW0017C2 LEN(2) DISP(8)      /*SECOND COLUMN NUMBER*/
* ****************** CONSTANTS FOR QW0017TY **************************
COMP: QW0017SQ = 'SQ'             /*SQ SEQUENTIAL SCAN*/
COMP: QW0017WF = 'WF'             /*WF WORKFILE SCAN*/
COMP: QW0017TT = 'TT'             /*TT TEMPORARY TABLE SCAN*/
COMP: QW0017TR = 'TR'         /*TR TRANSITION TABLE SCAN FOR TRIGGERS*/

********************************************************************
* IFC ID 0018 FOR RMID 14 RECORDS END OF SEQUENTIAL SCAN (0017),   *
*  INDEX SCAN (0015), OR INSERT (0016). THE RECORD WRITTEN         *
*  MAY BE AT END OF FILE, CLOSE OF CUB, REUSE OF CUB, OR NO RECORD *
*  FOUND CONDITION, OR                                             *
*  WHEN PARALLELISM IS IN EFFECT, RECORDS END OF                   *
*  SCAN FOR EACH I/O LOGICAL PARTITION (I/O STREAM).               *
*                                                                  *
* IFCID 0015, 0016 OR 0017 MUST BE ACTIVE FOR THIS END RECORD TO   *
* BE WRITTEN.                                                      *
********************************************************************
***********************************************************************
**** QW0018   DSECT          IFCID(QWHS0018)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0018, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00018')
***********************************************************************
COMP: QW0018_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>18 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0018   DISP(0) LEN(1) OFFSET(QW0018_OFFSET)  /*IFCID(QWHS0018)*/
FLD: QW0018RT LEN(4) TYPE(BIN) DISP(0)                          /*(S)*/
FLD: QW0018RE LEN(4) TYPE(BIN) DISP(4)                          /*(S)*/
FLD: QW0018AC LEN(4) TYPE(BIN) DISP(8)     /*CUB TOKEN FOR UNIQUENESS*/
FLD: QW0018ID LEN(4) DISP(0)  /*IDENTIFICATION (ID) SEE EQUATES BELOW*/
FLD: QW0018RP LEN(8) DISP(4)      /*ROWS PROCESSED ANY RECORD TYPE*/
FLD: QW0018LA LEN(8) DISP(12)     /*ROWS LOOKED AT RIGHT RECORD TYPE*/
FLD: QW0018DQ LEN(8) DISP(20)     /*ROWS DATA MANAGER QUALIFIED*/
FLD: QW0018RQ LEN(8) DISP(28)     /*ROWS RDS QUALIFIED*/
FLD: QW0018IN LEN(8) DISP(36)     /*ROWS INSERTED*/
FLD: QW0018UP LEN(8) DISP(44)     /*ROWS UPDATED*/
FLD: QW0018DE LEN(8) DISP(52)     /*ROWS DELETED*/
FLD: QW0018PS LEN(4) DISP(60)     /*PAGES SCANNED*/
FLD: QW0018PR LEN(4) DISP(64)   /*ADDITIONAL PAGES SCANNED TO ENFORCE*/
*                             REFERENTIAL CONSTRAINTS
FLD: QW0018DR LEN(8) DISP(68)   /*ADDITIONAL ROWS DELETED OR SET NULL*/
*                             TO ENFORCE REFERENTIAL CONSTRAINTS
COMP: QW0018IX = 'INDX'           /*ID INDEX*/
COMP: QW0018SD = 'SEQD'           /*ID SEQUENTIAL DATA*/
COMP: QW0018SW = 'SEQW'           /*ID SEQUENTIAL DATA WORKFILE*/
COMP: QW0018ST = 'SEQT'           /*ID SEQUENTIAL DATA TEMP TABLE*/
COMP: QW0018SR = 'SEQR'         /*ID SEQUENTIAL DATA TRANSITION TABLE*/

********************************************************************
* IFC ID 0019 FOR RMID 14 AND RMID 16 RECORDS RESULTS OF AN EDIT   *
* EXIT CALL TO DECODE A RECORD - WRITTEN FOR EVERY ROW DECODED     *
********************************************************************
***********************************************************************
**** QW0019   DSECT           IFCID(QWHS0019)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0019, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00019')
***********************************************************************
COMP: QW0019_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>19 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0019   DISP(0) LEN(1) OFFSET(QW0019_OFFSET)  /*IFCID(QWHS0019)*/
FLD: QW0019DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0019PS TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0019OB TYPE(HALF) DISP(4)  /*RECORD OBID*/
FLD: QW0019TM TYPE(STCKTIME) DISP(6)    /*TIME EXIT WAS CALLED (STCK)*/
FLD: QW0019RT LEN(2) DISP(14)     /*EXITS RETURN CODE (EXPLRC1)*/
FLD: QW0019RE LEN(4) DISP(16)     /*EXITS REASON CODE (EXPLRC2)*/
*

********************************************************************
* IFC ID 0023 FOR RMID 21 RECORDS UTILITY START INFORMATION        *
********************************************************************
***********************************************************************
**** QW0023   DSECT               IFCID(QWHS0023)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0023, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00023')
***********************************************************************
COMP: QW0023_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>23 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0023   DISP(0) LEN(1) OFFSET(QW0023_OFFSET)  /*IFCID(QWHS0023)*/
FLD: QW0023ID LEN(16) DISP(0)     /*UTILITY ID*/
FLD: QW0023DB TYPE(HALF) DISP(16) /*DBID NORMALLY ZERO*/
FLD: QW0023PD TYPE(HALF) DISP(18) /*PSID NORMALLY ZERO*/
FLD: QW0023NM LEN(8) DISP(20)     /*UTILITY NAME*/
FLD: QW0023PH LEN(8) DISP(28)     /*PHASE*/
FLD: QW0023R1 LEN(4) TYPE(BIN) DISP(36)     /*REQUESTED SUBTASK COUNT*/
FLD: QW0023PT LEN(4) TYPE(BIN) DISP(40)                    /*RESERVED*/
FLD: QW0023NA LEN(8) DISP(44)     /*RESERVED*/
FLD: QW0023PN LEN(8) DISP(52)     /*RESERVED*/
FLD: QW0023DN LEN(8) DISP(60)     /*UTILITY KEYWORD INVOCATION FLAGS*/
FLD: QW0023FA LEN(1) DISP(60)     /*KEYWORD FLAGS 1*/
COMP: QW0023A1 = X'80'            /*COPY CONCURRENT*/
COMP: QW0023A2 = X'40'            /*COPY SHRLEVEL CHANGE*/
COMP: QW0023A3 = X'20'            /*COPY PARALLEL*/
COMP: QW0023A4 = X'10'            /*COPY CHECKPAGE*/
COMP: QW0023A5 = X'08'            /*RESERVED*/
COMP: QW0023A6 = X'04'            /*RESERVED*/
COMP: QW0023A7 = X'02'            /*RECOVER REUSE*/
COMP: QW0023A8 = X'01'            /*RECOVER PARALLEL*/
FLD: QW0023FB LEN(1) DISP(61)     /*KEYWORD FLAGS 2*/
COMP: QW0023B1 = X'80'            /*LOAD KEEPDICTIONARY*/
COMP: QW0023B2 = X'40'            /*LOAD REUSE*/
COMP: QW0023B3 = X'20'            /*LOAD LOG NO*/
COMP: QW0023B4 = X'10'            /*LOAD SORTKEYS*/
COMP: QW0023B5 = X'08'            /*LOAD SHRLEVEL CHANGE*/
COMP: QW0023B6 = X'04'            /*LOAD COPYDDN*/
COMP: QW0023B7 = X'02'            /*LOAD STATISTICS*/
COMP: QW0023B8 = X'01'            /*LOAD PART INDDN*/
FLD: QW0023FC LEN(1) DISP(62)     /*KEYWORD FLAGS 3*/
COMP: QW0023C1 = X'80'            /*RESERVED*/
COMP: QW0023C2 = X'40'            /*RESERVED*/
COMP: QW0023C3 = X'20'            /*RESERVED*/
COMP: QW0023C4 = X'10'            /*RESERVED*/
COMP: QW0023C5 = X'08'            /*RESERVED*/
COMP: QW0023C6 = X'04'            /*RESERVED*/
COMP: QW0023C7 = X'02'            /*RESERVED*/
COMP: QW0023C8 = X'01'            /*RESERVED*/
FLD: QW0023FD LEN(1) DISP(63)     /*KEYWORD FLAGS 4*/
COMP: QW0023D1 = X'80'            /*REORG KEEPDICTIONARY*/
COMP: QW0023D2 = X'40'            /*REORG REUSE*/
COMP: QW0023D3 = X'20'            /*REORG LOG NO*/
COMP: QW0023D4 = X'10'            /*REORG SORTKEYS*/
COMP: QW0023D5 = X'08'            /*REORG SORTDATA*/
COMP: QW0023D6 = X'04'            /*REORG NOSYSREC*/
COMP: QW0023D7 = X'02'            /*REORG SHRLEVEL CHANGE*/
COMP: QW0023D8 = X'01'            /*REORG SHRLEVEL REFERENCE*/
FLD: QW0023FE LEN(1) DISP(64)     /*KEYWORD FLAGS 5*/
COMP: QW0023E1 = X'80'            /*REORG COPYDDN*/
COMP: QW0023E2 = X'40'            /*REORG STATISTICS*/
COMP: QW0023E3 = X'20'            /*REORG FASTSWITCH*/
COMP: QW0023E4 = X'10'            /*RESERVED*/
COMP: QW0023E5 = X'08'            /*RESERVED*/
COMP: QW0023E6 = X'04'            /*RESERVED*/
COMP: QW0023E7 = X'02'            /*RESERVED*/
COMP: QW0023E8 = X'01'            /*RESERVED*/
FLD: QW0023FF LEN(1) DISP(65)     /*KEYWORD FLAGS 6*/
COMP: QW0023F1 = X'80'            /*REBUILD REUSE*/
COMP: QW0023F2 = X'40'            /*REBUILD SORTKEYS*/
COMP: QW0023F3 = X'20'            /*REBUILD STATISTICS*/
COMP: QW0023F4 = X'10'            /*REBUILD WORKDDN*/
COMP: QW0023F5 = X'08'            /*RESERVED*/
COMP: QW0023F6 = X'04'            /*RESERVED*/
COMP: QW0023F7 = X'02'            /*RESERVED*/
COMP: QW0023F8 = X'01'            /*RESERVED*/
FLD: QW0023FG LEN(1) DISP(66)     /*KEYWORD FLAGS 7*/
COMP: QW0023G1 = X'80'            /*RUNSTATS SAMPLE*/
COMP: QW0023G2 = X'40'            /*RUNSTATS SHRLEVEL CHANGE*/
COMP: QW0023G3 = X'20'            /*RESERVED*/
COMP: QW0023G4 = X'10'            /*RESERVED*/
COMP: QW0023G5 = X'08'            /*RESERVED*/
COMP: QW0023G6 = X'04'            /*RESERVED*/
COMP: QW0023G7 = X'02'            /*RESERVED*/
COMP: QW0023G8 = X'01'            /*RESERVED*/
FLD: QW0023FH LEN(1) DISP(67)     /*KEYWORD FLAGS 8*/
COMP: QW0023H1 = X'80'            /*UNLOAD SHRLEVEL REFERENCE*/
COMP: QW0023H2 = X'40'          /*UNLOAD SHRLEVEL CHANGE ISOLATION CS*/
COMP: QW0023H3 = X'20'          /*UNLOAD SHRLEVEL CHANGE ISOLATION UR*/
COMP: QW0023H4 = X'10'            /*RESERVED*/
COMP: QW0023H5 = X'08'            /*RESERVED*/
COMP: QW0023H6 = X'04'            /*RESERVED*/
COMP: QW0023H7 = X'02'            /*RESERVED*/
COMP: QW0023H8 = X'01'            /*RESERVED*/

********************************************************************
* IFC ID 0024 FOR RMID 21 RECORDS UTILITY OBJECT OR PHASE CHANGE   *
********************************************************************
***********************************************************************
**** QW0024   DSECT               IFCID(QWHS0024)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0024, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00024')
***********************************************************************
COMP: QW0024_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>24 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0024   DISP(0) LEN(1) OFFSET(QW0024_OFFSET)  /*IFCID(QWHS0024)*/
FLD: QW0024ID LEN(16) DISP(0)     /*UTILITY ID*/
FLD: QW0024DB TYPE(HALF) DISP(16) /*DBID MAY BE ZERO*/
FLD: QW0024PD TYPE(HALF) DISP(18) /*PSID MAY BE ZERO*/
FLD: QW0024NM LEN(8) DISP(20)     /*UTILITY NAME*/
FLD: QW0024PH LEN(8) DISP(28)     /*PHASE*/
FLD: QW0024R1 LEN(4) TYPE(BIN) DISP(36)       /*CURRENT SUBTASK COUNT*/
FLD: QW0024PT LEN(4) TYPE(BIN) DISP(40)
                                  /*PARTITION OR DATA SET NUMBER*/
FLD: QW0024NA LEN(8) DISP(44)     /*DATA BASE NAME*/
FLD: QW0024PN LEN(8) DISP(52)     /*TABLE SPACE/INDEX NAME*/
FLD: QW0024DN LEN(8) DISP(60)
                       /*NUMBER OF ITEMS PROCESSED FOR PREVIOUS PHASE*/
*                            E.G. RECORDS FOR RUNSTATS, PAGES FOR COPY
*                                 PAGES WRITTEN FOR RECOVER, ETC...
*

********************************************************************
* IFC ID 0025 FOR RMID 21 RECORDS UTILITY END INFORMATION          *
********************************************************************
***********************************************************************
**** QW0025   DSECT               IFCID(QWHS0025)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0025, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00025')
***********************************************************************
COMP: QW0025_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>25 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0025   DISP(0) LEN(1) OFFSET(QW0025_OFFSET)  /*IFCID(QWHS0025)*/
FLD: QW0025ID LEN(16) DISP(0)     /*UTILITY ID*/
FLD: QW0025DB TYPE(HALF) DISP(16) /*DBID*/
FLD: QW0025PD TYPE(HALF) DISP(18) /*PSID*/
FLD: QW0025NM LEN(8) DISP(20)     /*UTILITY NAME*/
FLD: QW0025PH LEN(8) DISP(28)     /*PHASE*/
FLD: QW0025R1 LEN(4) TYPE(BIN) DISP(36)         /*FINAL SUBTASK COUNT*/
FLD: QW0025PT LEN(4) TYPE(BIN) DISP(40)                    /*RESERVED*/
FLD: QW0025NA LEN(8) DISP(44)     /*RESERVED*/
FLD: QW0025PN LEN(8) DISP(52)     /*RESERVED*/
FLD: QW0025DN LEN(8) DISP(60)
                       /*NUMBER OF ITEMS PROCESSED FOR PREVIOUS PHASE*/
*                            E.G. RECORDS FOR RUNSTATS, PAGES FOR COPY
*                                 PAGES WRITTEN FOR RECOVER, ETC...

*/********************************************************************/
*/* IFC ID 0103 FOR RMID 06 RECORDS THE SETTING OFF OF SHORT ON      */
*/*             STORAGE                                              */
*/********************************************************************/
***********************************************************************
**** QW0103   DSECT               IFCID(QWHS0103)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0103, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00103')
***********************************************************************
COMP: QW0103_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>103 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0103   DISP(0) LEN(1) OFFSET(QW0103_OFFSET)  /*IFCID(QWHS0103)*/
FLD: QW0103SC TYPE(STCKTIME) DISP(0)               /*STORE CLOCK TIME*/
* RECORDED BY DSNSCTL, SFPL, SVPL, SGMN, SVBK, SFBK, SCON2
*

*/********************************************************************/
*/* IFC ID 0104 FOR RMID 04 RECORDS LOG DATA SET MAPPING             */
*/********************************************************************/
***********************************************************************
**** QW0104   DSECT               IFCID(QWHS0104)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0104, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00104')
***********************************************************************
COMP: QW0104_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>104 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0104   DISP(0) LEN(1) OFFSET(QW0104_OFFSET)  /*IFCID(QWHS0104)*/
*  THE FOLLOWING ITEMS REPEAT FOR EACH ACTIVE LOG.
*   LOCATED OUT OF QWT02R1O
FLD: QW0104DI LEN(8) DISP(0)      /*DATA SET IDENTIFIER*/
FLD: QW0104DN LEN(44) DISP(8)     /*DATA SET NAME ACTIVE LOG ONLY*/
*

*/********************************************************************/
*/* IFC ID 0105 FOR RMID 10 ASSOCIATES AN INTERNAL DBID AND OBID TO  */
*/*  THE ACTUAL DATA BASE AND TABLE SPACE OR INDEX REFERENCED.       */
*/* THE FOLLOWING ITEMS REPEAT FOR EACH COMBINATION AND THE          */
*/* MAXIMUM NUMBER OF REPEATABLE ITEMS IS 100 (DECIMAL).             */
*/* IF THE NUMBER OF REPEATABLE ITEMS EXCEEDS 100, ANOTHER           */
*/* IFCID 105 RECORD WILL BE GENERATED.                              */
*/* LOCATED OUT OF QWT02R1O                                          */
*/*********************************************************************
***********************************************************************
**** QW0105   DSECT               IFCID(QWHS0105)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0105, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00105')
***********************************************************************
COMP: QW0105_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>105 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0105   DISP(0) LEN(1) OFFSET(QW0105_OFFSET)  /*IFCID(QWHS0105)*/
FLD: QW0105DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0105OB TYPE(HALF) DISP(2)  /*PAGESET OBID (PSID)*/
FLD: QW0105DN LEN(8) DISP(4)      /*DATA BASE NAME*/
FLD: QW0105TN LEN(8) DISP(12)     /*TABLE SPACE NAME*/

**********************************************************************
***                    IFCIDS 0140 - 200                             *
**********************************************************************
*
**********************************************************************
*   DATA CAN BE EXTERNALIZED FOR IFC IDS TO SMF OR  GTF.             *
*    THE SMF HEADER IS MAPPED BY DSNDQWSP.                           *
*    THE GTF HEADER IS MAPPED BY DSNDQWGT.                           *
**********************************************************************
*
**********************************************************************
*
*  NOTE: 1. FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA
*
*        2. THE COMMENTS OF MANY FIELDS IN DSNDQW02 ARE PRECEEDED
*           WITH A (S) INDICATING FOR SERVICEABILITY ONLY.
*           SERVICEABILITY ONLY MEANS THE FOLLOWING:
*            A. THE DATA IS INTENDED TO BE USED BY IBM PERSONNEL FOR
*                SERVICEABILITY RELATED PROBLEM SOLVING.
*            B. NO ADDITIONAL INFORMATION CAN BE EXPECTED FROM IBM
*                ABOUT THE ITEM.
*            C. THE DATA MAY BE USED BY THE CUSTOMER AT THEIR OWN RISK.
*
*        IBM RESERVES THE RIGHT TO CHANGE THE COMMENTS OF
*        ANY DEFINED FIELD TO SERVICEABILITY ONLY,  OR OMIT THE
*        SERVICEABILITY ONLY INDICATION.
*
**********************************************************************
*
***********************************************************************
*   IFC ID 0000 IS RESERVED FOR ENTRY AND EXIT TRACING.   NO MAPPING
*   MACRO IS PROVIDED
*
*   IFC ID 0001 IS RESERVED FOR SYSTEM STATISTICS RECORDS AND IS
*   MAPPED BY MACRO DSNDQWST SUPTYPE=0
*
*   IFC ID 0002 IS RESERVED FOR DATA BASE STATISTICS RECORDS AND IS
*   MAPPED BY MACRO DSNDQWST SUPTYPE=1
*
*   IFC ID 0003 IS RESERVED FOR ACCOUNTING  RECORDS AND IS
*   MAPPED BY MACRO DSNDQWAS
*
*   IFC ID 0004 - 0057 ARE MAPPED BY DSNDQW00
*   IFC ID 0058 - 0139 MAPPED BY DSNDQW01
*                       EXCEPT 0106 IS MAPPED BY DSNDQWPZ
*                       EXCEPT ALL  SERVICEABILITY IFCIDS
*   IFC ID 0140 - 200  ARE MAPPDED BY THIS MACRO - DSNDQW02
*   IFC ID 0201 - UP   MAPPED BY DSNDQW03
*                       EXCEPT 0202
*
*   IFC ID 0202 IS RESERVED FOR DYNAMIC ZPARM RECORDS AND IS
*   MAPPED BY MACRO DSNDQWST SUPTYPE=2
***********************************************************************
*
***********************************************************************
*          THE SECTION IS LOCATED OUT OF QWT02R1O
***********************************************************************

***********************************************************************
*        IFCID 0140 RECORDS AUTHORIZATION FAILURES **
***********************************************************************
***********************************************************************
**** QW0140   DSECT
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0140, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00140')
***********************************************************************
COMP: QW0140_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>140 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0140   DISP(0) LEN(1) OFFSET(QW0140_OFFSET)
*
FLD: QW0140PR TYPE(HALF) DISP(0)  /*PRIVILEGE BEING CHECKED*/
*
* **..................QW0140PR  CONSTANTS............................**
COMP: QW0140SL = 12               /*START RLIMIT*/
COMP: QW0140PL = 13               /*STOP RLIMIT*/
COMP: QW0140DL = 14               /*DISPLAY RLIMIT*/
COMP: QW0140CA = 15               /*CREATE ALIAS*/
COMP: QW0140M1 = 16               /*MONITOR1*/
COMP: QW0140M2 = 17               /*MONITOR2*/
COMP: QW0140CU = 19               /*CHECK UTILITY*/
COMP: QW0140DX = 20               /*DROP ALIAS*/
COMP: QW0140DM = 21              /*DDF COMMAND START, STOP, OR CANCEL*/
COMP: QW0140S = 50                /*SELECT*/
COMP: QW0140I = 51                /*INSERT*/
COMP: QW0140D = 52                /*DELETE*/
COMP: QW0140U = 53                /*UPDATE*/
COMP: QW0140R = 54                /*REFERENCES*/
COMP: QW0140TR = 55               /*TRIGGER*/
COMP: QW0140CI = 56               /*CREATE INDEX*/
COMP: QW0140DB = 57               /*DBADM*/
COMP: QW0140TB = 58               /*TERMINATE UTILITY ON DATABASE*/
COMP: QW0140A = 61                /*ALTER*/
COMP: QW0140DT = 62               /*DISPLAY THREAD OR DISPLAY DB*/
COMP: QW0140EX = 64               /*EXECUTE*/
COMP: QW0140B = 65                /*BIND, REBIND OR FREE*/
COMP: QW0140CD = 66               /*CREATEDBA*/
COMP: QW0140CG = 67               /*CREATE STOGROUP*/
COMP: QW0140DC = 68               /*DBCTRL*/
COMP: QW0140DA = 69               /*DBMAINT*/
COMP: QW0140RI = 72               /*RECOVER INDOUBT*/
COMP: QW0140DR = 73               /*DROP*/
COMP: QW0140C = 74                /*COPY*/
COMP: QW0140L = 75                /*LOAD*/
COMP: QW0140EQ = 76               /*EXPLICIT QUALIFIER USE*/
COMP: QW0140RG = 77               /*REORG*/
COMP: QW0140RP = 78               /*REPAIR*/
COMP: QW0140SD = 79               /*START DATABASE*/
COMP: QW0140S2 = 80  /*START DB2, STOP DB2, START DB(*) OR STOP DB(*)*/
COMP: QW0140RU = 82               /*RUNSTATS UTILITY*/
COMP: QW0140PD = 83               /*STOP DATABASE*/
COMP: QW0140ST = 84               /*STOP OR START TRACE*/
COMP: QW0140SY = 85               /*SYSADM*/
COMP: QW0140SO = 86               /*SYSOPR*/
COMP: QW0140US = 87               /*USE*/
COMP: QW0140BA = 88               /*BIND ADD*/
COMP: QW0140RR = 89               /*RECOVER (UTILITY)*/
COMP: QW0140CC = 92               /*CREATEDBC*/
COMP: QW0140RB = 93               /*RECOVER BSDS*/
COMP: QW0140CT = 94               /*CREATE TABLE*/
COMP: QW0140CS = 95               /*CREATE TABLESPACE*/
COMP: QW0140DU = 96               /*DISPLAY UTILITY*/
COMP: QW0140CO = 97               /*COMMENT ON*/
COMP: QW0140LT = 98               /*LOCK TABLE*/
COMP: QW0140DD = 99               /*DISPLAY DATABASE*/
COMP: QW0140CY = 102              /*CREATE SYNONYM*/
COMP: QW0140AI = 103              /*ALTER INDEX*/
COMP: QW0140DS = 104              /*DROP SYNONYM*/
COMP: QW0140DI = 105              /*DROP INDEX*/
COMP: QW0140SU = 107              /*STOSPACE UTILITY*/
COMP: QW0140CV = 108              /*CREATE VIEW*/
COMP: QW0140TU = 109              /*TERM UTILITY*/
COMP: QW0140DP = 112              /*DISPLAY BUFFERPOOL*/
COMP: QW0140AB = 113              /*ALTER BUFFERPOOL*/
COMP: QW0140YC = 224              /*SYSCTRL*/
COMP: QW0140CP = 225              /*COPY PACKAGE*/
COMP: QW0140IN = 226              /*CREATE IN*/
COMP: QW0140BN = 227              /*BINDAGENT*/
COMP: QW0140AL = 60               /*ALL ON PACKAGES*/
COMP: QW0140AR = 231              /*ARCHIVE*/
COMP: QW0140AP = 228              /*ALLPKAUT*/
COMP: QW0140SP = 229              /*SUBPKAUT*/
COMP: QW0140DE = 233              /*DESCRIBE TABLE*/
COMP: QW0140DG = 236              /*DIAGNOSE UTILITY*/
COMP: QW0140MC = 237              /*MERGECOPY UTILITY*/
COMP: QW0140MU = 238              /*MODIFY UTILITY*/
COMP: QW0140QU = 239              /*QUIESCE UTILITY*/
COMP: QW0140RE = 240              /*REPORT UTILITY*/
COMP: QW0140RD = 241              /*REPAIR DBD UTILITY*/
COMP: QW0140PA = 242              /*PACKADM*/
COMP: QW0140SH = 243              /*SET ARCHIVE*/
COMP: QW0140DH = 244              /*DISPLAY ARCHIVE*/
COMP: QW0140TT = 248    /*CREATE GLOBAL TEMPORARY TABLE (CREATETMTAB)*/
COMP: QW0140RT = 251              /*RENAME TABLE*/
COMP: QW0140A1 = 252              /*ALTERIN*/
COMP: QW0140C1 = 261              /*CREATEIN*/
COMP: QW0140D1 = 262              /*DROPIN*/
COMP: QW0140U1 = 263              /*USAGE*/
COMP: QW0140S1 = 265              /*START*/
COMP: QW0140S3 = 266              /*STOP*/
COMP: QW0140D2 = 267              /*DISPLAY*/
COMP: QW0140CX = 274              /*COMMENT ON INDEX*/
COMP: QW0140ML = 280              /*VALIDATE SECLABEL*/
COMP: QW0140MR = 281              /*MLS READWRITE*/
FLD: QW0140OB LEN(1) DISP(2)      /*OBJECT TYPE*/
*
* **..................QW0140OB  CONSTANTS............................**
COMP: QW0140BB = 'B'              /*BUFFERPOOL*/
COMP: QW0140BC = 'C'              /*COLLECTION*/
COMP: QW0140BD = 'D'              /*DATABASE*/
COMP: QW0140BE = 'E'              /*DISTINCT TYPE*/
COMP: QW0140BF = 'F'              /*FUNCTION*/
COMP: QW0140BJ = 'J'              /*JAR*/
COMP: QW0140BK = 'K'              /*PACKAGE*/
COMP: QW0140BM = 'M'              /*SCHEMA*/
COMP: QW0140BO = 'O'              /*PROCEDURE*/
COMP: QW0140BP = 'P'              /*APPLICATION PLAN*/
COMP: QW0140BQ = 'Q'              /*SEQUENCE*/
COMP: QW0140BS = 'R'              /*TABLESPACE*/
COMP: QW0140BG = 'S'              /*STORAGE GROUP*/
COMP: QW0140BT = 'T'              /*TABLE OR VIEW*/
COMP: QW0140BU = 'U'              /*USER AUTH*/
COMP: QW0140AC = 'A'              /*ACEE*/
COMP: QW0140RO = 'W'              /*ROW*/
FLD: QW0140SC LEN(8) DISP(3)      /*%U SOURCE OBJECT OWNER: Two cases*/
*                             1) If object type not equal User Auth -
*                               Qualifier of the object against
*                               which authorization was checked.
*                               Valid for qualifiable objects.
*                             2) If object type equals User Auth -
*                               Qualifier of ALIAS being created.
*                               Valid for CREATE ALIAS privilege.
*                             Truncated if QW0140SC_Off^=0
*
FLD: QW0140SN LEN(18) DISP(11)    /*%U SOURCE OBJECT NAME: Two cases*/
*                             1) If object type not equal User Auth -
*                               Name of the object against which
*                               authorization was checked.
*                             2) If object type equals User Auth -
*                               Name of the object being created. Valid
*                               when privilege is CREATE ALIAS,
*                               CREATEDBA, CREATEDBC, or CREATE
*                               STOGROUP.
*                             Truncated if QW0140SN_Off^=0
*
FLD: QW0140TC LEN(8) DISP(29)
                           /*%U TARGET OBJECT OWNER: Qualifier of the*/
*                             object being defined.  This field is
*                             valid for the CREATE INDEX and CREATE
*                             TABLE privileges. It is also valid for
*                             the CREATE VIEW authorization check which
*                             is a set of checks against the following
*                             privileges: CREATE VIEW (when creating
*                             view for another), SELECT, INSERT, DELETE
*                             and UPDATE.
*                             Truncated if QW0140TC_Off^=0
*
FLD: QW0140TN LEN(18) DISP(37)
                          /*%U TARGET OBJECT NAME: Name of the object*/
*                             being defined.  Once again, this field
*                             is valid only in the above mentioned
*                             situations.
*                             Truncated if QW0140TN_Off^=0
*
FLD: QW0140UR LEN(8) DISP(55)     /*%U AUTH ID BEING CHECKED*/
*                             Truncated if QW0140UR_Off^=0
*
FLD: QW0140RC TYPE(HALF) DISP(64) /*RETURN CODE FROM ACCESS CONTROL*/
*                            AUTHORIZATION EXIT ROUTINE:
*                            -1 - EXIT WAS NOT CALLED
*                             4 - PERFORM DB2 AUTHORIZATION CHECK
*                             8 - NOT AUTHORIZED
*                            12 - UNABLE TO SERVICE REQUEST;
*                                 DO NOT CALL AGAIN
*
FLD: QW0140RS LEN(4) TYPE(BIN) DISP(68)
                                  /*USER DEFINED REASON CODE FROM THE*/
*                            ACCESS CONTROL AUTHORIZATION EXIT
*                            ROUTINE.
*
FLD: QW0140HO LEN(8) DISP(72)     /*HOST OPTIONS FOR SQL STATEMENTS*/
*                            (ZEROES FOR NON-SQL STMTS)
*
***...............BIT SETTINGS FOR QW0140HO..........................**
* BIT SETTINGS LEFT TO RIGHT I.E. 123456789........64
* 1 BIT - APOST(0) (OFF) OR QUOTE(1) (ON)
* 2 BIT - PERIOD(0) (OFF) OR COMMA(1) (ON)
* 3 BIT - APOSTSQL(0) (OFF) OR QUOTESQL(1) (ON)
* 4 BIT - MIXED YES (ON) OR NO (OFF)
* 5 BIT - USE HOST LANGUAGE OPTION YES (ON) OR NO (OFF)
* 6  - 8  BITS - HOST LANGUAGE OR DYNAMIC
*             ASSEMBLER  001
*             COBOL      010
*             PL/1       011
*             NONE       100  DYNAMIC
*             FORTRAN    101
*             COBOL2     110
*             NULL       111  SEE BITS 17 - 24 FOR THE LANGUAGE
* 9  - 16 BITS - CHARACTER SET BEING USED
*             ALPHANUMERIC   00000000
*             KATAKANA       00000001
* 17 - 24 BITS - ALTERNATE HOST LANGUAGE FIELD
*             ASSEMBLER  'B'
*             COBOL      'C'
*             PL/1       'P'
*             FORTRAN    'F'
*             COBOL2     '2'
*             IBM COBOL  '3'
*             C++        '4'
*             C          'D'
* 25 - 28 BITS - TIME OPTION
*             NONE       0000
*             LOCAL      1000
*             JIS        0100
*             ISO/EUR    0010
*             USA        0001
* 29 - 32 BITS - DATE OPTION
*             NONE       0000
*             LOCAL      1000
*             EUR        0100
*             ISO/JIS    0010
*             USA        0001
* 33 BIT - DECIMAL 31 YES (ON) OR NO (OFF)
* 34 - 40 BITS - UNUSED
* 41 - 48 BITS - REMOTE OPTION
*             SQL(ALL)  00000001
*             SQL(DB2)  00000010
* 49 - 56 BITS - SQLFLAG OPTION
*             SQLFLAG(SAA)       00000001
*             NO SQLFLAG OPTION  00000000
* 57 - 64 BITS - UNUSED
*
FLD: QW0140SC_OFF TYPE(HALF) DISP(80)         /*Offset from QW0140 to*/
*                              SOURCE OBJECT OWNER
*                              If QW0140SC truncated
FLD: QW0140SN_OFF TYPE(HALF) DISP(82)         /*Offset from QW0140 to*/
*                              SOURCE OBJECT NAME
*                              If QW0140SN truncated
FLD: QW0140TC_OFF TYPE(HALF) DISP(84)         /*Offset from QW0140 to*/
*                              TARGET OBJECT OWNER
*                              If QW0140TC truncated
FLD: QW0140TN_OFF TYPE(HALF) DISP(86)         /*Offset from QW0140 to*/
*                              TARGET OBJECT NAME
*                              If QW0140TN truncated
FLD: QW0140UR_OFF TYPE(HALF) DISP(88)         /*Offset from QW0140 to*/
*                              AUTH ID BEING CHECKED
*                              If QW0140UR truncated
FLD: QW0140ID LEN(5) DISP(97)     /*RID of row being updtd/delted*/
*                      in an MLS table
FLD: QW0140RL LEN(8) DISP(102)    /*Seclabel for/of MLS table row*/
FLD: QW0140UT LEN(80) DISP(110)   /*ACEE UTOKEN IF AVAILABLE*/
*                      If not accessible 1st word
*                         0 - Not able to get UTOKEN
*                        -1 - Abend on accessing ACEE
FLD: QW0140TX LEN(1) DISP(192)    /*SQL TEXT AND LENGTH*/
FLD: QW0140LL LEN(4) TYPE(BIN) DISP(192)
                                /*LENGTH OF FAILING SQL STATEMENT + 4*/
*                      ZERO WHEN NO SQL STATEMENT EXISTS
FLD: QW0140LE TYPE(HALF) DISP(196)
                        /*LENGTH OF TRUNCATED SQL STATEMENT IN RECORD*/
FLD: QW0140SQ LEN(1) DISP(198)
                           /*%U FAILING SQL STATEMENT (IF APPLICABLE)*/
*                      ONLY FIRST 4000 OF SQL STATEMENT SHOWN
*                      SKELETON STMT FOR 'SET CURRENT SQLID'
*
***********************************************************************
**** QW0140SC_D   DSECT      Use if QS0140SC_Off^=0
***********************************************************************

COMP: QW0140SC_D_OFFSET =
  WHEN(QW0140_OFFSET <> 99999 AND QW0140SC_OFF <> 0)
                    ASSIGN(QW0140_OFFSET + QW0140SC_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0140SC_D DISP(0) LEN(1) OFFSET(QW0140SC_D_OFFSET)
                                  /*Use if QS0140SC_Off^ 0*/
FLD: QW0140SC_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0140SC_VAR LEN(128) DISP(2)/*%U SOURCE OBJECT OWNER*/
COMPUTE: EDIT_QW0140SC_Var = #LEFT(QW0140SC_Var,QW0140SC_Len) 

*
***********************************************************************
**** QW0140SN_D   DSECT      Use if QS0140SN_Off^=0
***********************************************************************

COMP: QW0140SN_D_OFFSET =
  WHEN(QW0140_OFFSET <> 99999 AND QW0140SN_OFF <> 0)
                    ASSIGN(QW0140_OFFSET + QW0140SN_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0140SN_D DISP(0) LEN(1) OFFSET(QW0140SN_D_OFFSET)
                                  /*Use if QS0140SN_Off^ 0*/
FLD: QW0140SN_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0140SN_VAR LEN(128) DISP(2)/*%U SOURCE OBJECT NAME*/
COMPUTE: EDIT_QW0140SN_Var = #LEFT(QW0140SN_Var,QW0140SN_Len) 
*

***********************************************************************
**** QW0140TC_D   DSECT      Use if QS0140TC_Off^=0
***********************************************************************

COMP: QW0140TC_D_OFFSET =
  WHEN(QW0140_OFFSET <> 99999 AND QW0140TC_OFF <> 0)
                    ASSIGN(QW0140_OFFSET + QW0140TC_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0140TC_D DISP(0) LEN(1) OFFSET(QW0140TC_D_OFFSET)
                                  /*Use if QS0140TC_Off^ 0*/
FLD: QW0140TC_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0140TC_VAR LEN(128) DISP(2)/*%U TARGET OBJECT OWNER*/
COMPUTE: EDIT_QW0140TC_Var = #LEFT(QW0140TC_Var,QW0140TC_Len) 
*

***********************************************************************
**** QW0140TN_D   DSECT      Use if QS0140TN_Off^=0
***********************************************************************

COMP: QW0140TN_D_OFFSET =
  WHEN(QW0140_OFFSET <> 99999 AND QW0140TN_OFF <> 0)
                    ASSIGN(QW0140_OFFSET + QW0140TN_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0140TN_D DISP(0) LEN(1) OFFSET(QW0140TN_D_OFFSET)
                                  /*Use if QS0140TN_Off^ 0*/
FLD: QW0140TN_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0140TN_VAR LEN(128) DISP(2)/*%U TARGET OBJECT NAME*/
COMPUTE: EDIT_QW0140TN_Var = #LEFT(QW0140TN_Var,QW0140TN_Len) 
*

***********************************************************************
**** QW0140UR_D   DSECT      Use if QS0140UR_Off^=0
***********************************************************************

COMP: QW0140UR_D_OFFSET =
  WHEN(QW0140_OFFSET <> 99999 AND QW0140UR_OFF <> 0)
                    ASSIGN(QW0140_OFFSET + QW0140UR_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0140UR_D DISP(0) LEN(1) OFFSET(QW0140UR_D_OFFSET)
                                  /*Use if QS0140UR_Off^ 0*/
FLD: QW0140UR_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0140UR_VAR LEN(128) DISP(2)/*%U AUTH ID BEING CHECKED*/
COMPUTE: EDIT_QW0140UR_Var = #LEFT(QW0140UR_Var,QW0140UR_Len) 

***********************************************************************
*     IFCID 0141 RECORDS EXPLICIT GRANTS AND REVOKES
***********************************************************************
***********************************************************************
**** QW0141   DSECT
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0141, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00141')
***********************************************************************
COMP: QW0141_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>141 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0141   DISP(0) LEN(1) OFFSET(QW0141_OFFSET)
*
FLD: QW0141OR LEN(8) DISP(0)    /*%U GRANTOR OR REVOKER BLANK WHEN BY*/
*                              CLAUSE SPECIFIED IN REVOKE STMT KYF1134
*                              Truncated if QW0141OR_Off^=0
FLD: QW0141AC LEN(1) DISP(8)      /*ACCESS TYPE ('G' OR 'R')*/
FLD: QW0141OB LEN(1) DISP(9)      /*OBJECT TYPE (DEFINED IN QW0140OB)*/
FLD: QW0141CO LEN(4) TYPE(BIN) DISP(12)                    /*SQL CODE*/
FLD: QW0141RE LEN(1) DISP(16)
                             /*REASON ACCESS GRANTED (ONLY FOR GRANT)*/
*
***...............QW0141RE CONSTANTS.................................**
COMP: QW0141RS = 'S'              /*SYSADM*/
COMP: QW0141RL = 'L'              /*SYSCTRL*/
COMP: QW0141RO = 'O'              /*SYSOPR*/
COMP: QW0141RD = 'D'              /*DBADM*/
COMP: QW0141RC = 'C'              /*DBCTRL*/
COMP: QW0141RM = 'M'              /*DBMAINT*/
COMP: QW0141RP = 'P'            /*PACKADM ON A SPECIFIC COLLECTION ID*/
COMP: QW0141RA = 'A'              /*PACKADM ON ALL COLLECTIONS*/
FLD: QW0141HO LEN(8) DISP(17)     /*HOST OPTIONS*/
*
***...............BIT SETTINGS FOR QW0141HO..........................**
* BIT SETTINGS LEFT TO RIGHT I.E. 123456789........64
* 1 BIT - APOST(0) (OFF) OR QUOTE(1) (ON)
* 2 BIT - PERIOD(0) (OFF) OR COMMA(1) (ON)
* 3 BIT - APOSTSQL(0) (OFF) OR QUOTESQL(1) (ON)
* 4 BIT - MIXED YES (ON) OR NO (OFF)
* 5 BIT - USE HOST LANGUAGE OPTION YES (ON) OR NO (OFF)
* 6  - 8  BITS - HOST LANGUAGE OR DYNAMIC
*             ASSEMBLER  001
*             COBOL      010
*             PL/1       011
*             NONE       100  DYNAMIC
*             FORTRAN    101
*             COBOL2     110
*             NULL       111  SEE BITS 17 - 24 FOR THE LANGUAGE
* 9  - 16 BITS - CHARACTER SET BEING USED
*             ALPHANUMERIC   00000000
*             KATAKANA       00000001
* 17 - 24 BITS - ALTERNATE HOST LANGUAGE FIELD
*             ASSEMBLER  'B'
*             COBOL      'C'
*             PL/1       'P'
*             FORTRAN    'F'
*             COBOL2     '2'
*             IBM COBOL  '3'
*             C++        '4'
*             C          'D'
* 25 - 28 BITS - TIME OPTION
*             NONE       0000
*             LOCAL      1000
*             JIS        0100
*             ISO/EUR    0010
*             USA        0001
* 29 - 32 BITS - DATE OPTION
*             NONE       0000
*             LOCAL      1000
*             EUR        0100
*             ISO/JIS    0010
*             USA        0001
* 33 BIT - DECIMAL 31 YES (ON) OR NO (OFF)
* 34 - 40 BITS - UNUSED
* 41 - 48 BITS - REMOTE OPTION
*             SQL(ALL)  00000001
*             SQL(DB2)  00000010
* 49 - 56 BITS - SQLFLAG OPTION
*             SQLFLAG(SAA)       00000001
*             NO SQLFLAG OPTION  00000000
* 57 - 64 BITS - UNUSED
*
FLD: QW0141OR_OFF TYPE(HALF) DISP(26)         /*Offset from QW0141 to*/
*                              GRANTOR OR REVOKER
*                              If QW0141OR truncated
FLD: QW0141LL LEN(4) TYPE(BIN) DISP(28)
                                /*LENGTH OF FAILING SQL STATEMENT + 4*/
FLD: QW0141LE TYPE(HALF) DISP(32)
                        /*LENGTH OF TRUNCATED SQL STATEMENT IN RECORD*/
FLD: QW0141TX LEN(1) DISP(34)
                             /*%U SQL TEXT AND LENGTH ONLY FIRST 4000*/
*                      BYTES SHOWN
*
***********************************************************************
**** QW0141OR_D   DSECT      Use if QW0141OR_Off^=0
***********************************************************************

COMP: QW0141OR_D_OFFSET =
  WHEN(QW0141_OFFSET <> 99999 AND QW0141OR_OFF <> 0)
                    ASSIGN(QW0141_OFFSET + QW0141OR_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0141OR_D DISP(0) LEN(1) OFFSET(QW0141OR_D_OFFSET)
                                  /*Use if QW0141OR_Off^ 0*/
FLD: QW0141OR_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0141OR_VAR LEN(128) DISP(2)/*%U GRANTOR OR REVOKER*/
COMPUTE: EDIT_QW0141OR_Var = #LEFT(QW0141OR_Var,QW0141OR_Len) 

***********************************************************************
*     IFCID 0142 RECORDS CREATES, ALTERS, AND DROPS AGAINST TABLES
*     THAT ARE AUDITED OR MULTILEVEL SECURITY AT ROW LEVEL.
***********************************************************************
***********************************************************************
**** QW0142   DSECT
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0142, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00142')
***********************************************************************
COMP: QW0142_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>142 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0142   DISP(0) LEN(1) OFFSET(QW0142_OFFSET)
*
FLD: QW0142DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0142OB TYPE(HALF) DISP(2)  /*RECORD OBID*/
FLD: QW0142OW LEN(8) DISP(4)      /*%U TABLE OWNER, SAME AS QUALIFIER*/
*                              Truncated if QW0142OW_Off^=0
FLD: QW0142CR LEN(8) DISP(12)     /*%U TABLE CREATOR*/
*                              Truncated if QW0142CR_Off^=0
FLD: QW0142AC LEN(1) DISP(20)   /*STATEMENT TYPE (CREATE, DROP ALTER)*/
FLD: QW0142TN LEN(18) DISP(21)    /*%U TABLE NAME*/
*                              Truncated if QW0142TN_Off^=0
FLD: QW0142HO LEN(8) DISP(39)     /*HOST OPTIONS*/
*
***...............BIT SETTINGS FOR QW0142HO..........................**
* BIT SETTINGS LEFT TO RIGHT I.E. 123456789........64
* 1 BIT - APOST(0) (OFF) OR QUOTE(1) (ON)
* 2 BIT - PERIOD(0) (OFF) OR COMMA(1) (ON)
* 3 BIT - APOSTSQL(0) (OFF) OR QUOTESQL(1) (ON)
* 4 BIT - MIXED YES (ON) OR NO (OFF)
* 5 BIT - USE HOST LANGUAGE OPTION YES (ON) OR NO (OFF)
* 6  - 8  BITS - HOST LANGUAGE OR DYNAMIC
*             ASSEMBLER  001
*             COBOL      010
*             PL/1       011
*             NONE       100  DYNAMIC
*             FORTRAN    101
*             COBOL2     110
*             NULL       111  SEE BITS 17 - 24 FOR THE LANGUAGE
* 9  - 16 BITS - CHARACTER SET BEING USED
*             ALPHANUMERIC   00000000
*             KATAKANA       00000001
* 17 - 24 BITS - ALTERNATE HOST LANGUAGE FIELD
*             ASSEMBLER  'B'
*             COBOL      'C'
*             PL/1       'P'
*             FORTRAN    'F'
*             COBOL2     '2'
*             IBM COBOL  '3'
*             C++        '4'
*             C          'D'
* 25 - 28 BITS - TIME OPTION
*             NONE       0000
*             LOCAL      1000
*             JIS        0100
*             ISO/EUR    0010
*             USA        0001
* 29 - 32 BITS - DATE OPTION
*             NONE       0000
*             LOCAL      1000
*             EUR        0100
*             ISO/JIS    0010
*             USA        0001
* 33 BIT - DECIMAL 31 YES (ON) OR NO (OFF)
* 34 - 40 BITS - UNUSED
* 41 - 48 BITS - REMOTE OPTION
*             SQL(ALL)  00000001
*             SQL(DB2)  00000010
* 49 - 56 BITS - SQLFLAG OPTION
*             SQLFLAG(SAA)       00000001
*             NO SQLFLAG OPTION  00000000
* 57 - 64 BITS - UNUSED
*
FLD: QW0142OW_OFF TYPE(HALF) DISP(48)         /*Offset from QW0142 to*/
*                              TABLE OWNER, SAME AS QUALIFIER
*                              If QW0142OW truncated
FLD: QW0142CR_OFF TYPE(HALF) DISP(50)         /*Offset from QW0142 to*/
*                              TABLE CREATOR
*                              If QW0142CR truncated
FLD: QW0142TN_OFF TYPE(HALF) DISP(52)         /*Offset from QW0142 to*/
*                              TABLE NAME
*                              If QW0142TN truncated
*
FLD: QW0142SL LEN(8) DISP(54)     /*%U SECLABEL USED WHEN DEFINED*/
FLD: QW0142ML LEN(1) DISP(62)     /*MULTILEVEL SECURITY*/
*                              Y - On CREATE and DROP of MLS
*                                  table, and ALTER to add a
*                                  seclabel column
*                              N - On ALTER of an MLS table
*                              BLANK - A non MLS table
FLD: QW0142LL LEN(4) TYPE(BIN) DISP(64) /*LENGTH OF SQL STATEMENT + 4*/
FLD: QW0142LE TYPE(HALF) DISP(68) /*LENGTH OF TRUNCATED SQL STATEMENT*/
*                            IN RECORD
FLD: QW0142TX LEN(1) DISP(70)
                             /*%U SQL TEXT AND LENGTH ONLY FIRST 4000*/
*                            BYTES SHOWN

***********************************************************************
**** QW0142OW_D   DSECT      Use if QW0142OW_Off^=0
***********************************************************************

COMP: QW0142OW_D_OFFSET =
  WHEN(QW0142_OFFSET <> 99999 AND QW0142OW_OFF <> 0)
                    ASSIGN(QW0142_OFFSET + QW0142OW_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0142OW_D DISP(0) LEN(1) OFFSET(QW0142OW_D_OFFSET)
                                  /*Use if QW0142OW_Off^ 0*/
FLD: QW0142OW_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0142OW_VAR LEN(128) DISP(2)
                                  /*%U TABLE OWNER, SAME AS QUALIFIER*/
COMPUTE: EDIT_QW0142OW_Var = #LEFT(QW0142OW_Var,QW0142OW_Len) 
*

***********************************************************************
**** QW0142CR_D   DSECT      Use if QW0142CR_Off^=0
***********************************************************************

COMP: QW0142CR_D_OFFSET =
  WHEN(QW0142_OFFSET <> 99999 AND QW0142CR_OFF <> 0)
                    ASSIGN(QW0142_OFFSET + QW0142CR_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0142CR_D DISP(0) LEN(1) OFFSET(QW0142CR_D_OFFSET)
                                  /*Use if QW0142CR_Off^ 0*/
FLD: QW0142CR_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0142CR_VAR LEN(128) DISP(2)/*%U TABLE CREATOR*/
COMPUTE: EDIT_QW0142CR_Var = #LEFT(QW0142CR_Var,QW0142CR_Len) 
*

***********************************************************************
**** QW0142TN_D   DSECT      Use if QW0142TN_Off^=0
***********************************************************************

COMP: QW0142TN_D_OFFSET =
  WHEN(QW0142_OFFSET <> 99999 AND QW0142TN_OFF <> 0)
                    ASSIGN(QW0142_OFFSET + QW0142TN_OFF)
  ELSE              ASSIGN(99999)
FLD: QW0142TN_D DISP(0) LEN(1) OFFSET(QW0142TN_D_OFFSET)
                                  /*Use if QW0142TN_Off^ 0*/
FLD: QW0142TN_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QW0142TN_VAR LEN(128) DISP(2)/*%U TABLE NAME*/
COMPUTE: EDIT_QW0142TN_Var = #LEFT(QW0142TN_Var,QW0142TN_Len) 

***********************************************************************
*  IFCID 0143 - FIRST ATTEMPTED CHANGE (WRITE) OF AN AUDITED OBJECT
*               WITHIN A UNIT OF RECOVERY
***********************************************************************
***********************************************************************
**** QW0143   DSECT
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0143, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00143')
***********************************************************************
COMP: QW0143_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>143 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0143   DISP(0) LEN(1) OFFSET(QW0143_OFFSET)
FLD: QW0143DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0143PS TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0143OB TYPE(HALF) DISP(4)  /*RECORD OBID*/
FLD: QW0143UR LEN(6) DISP(6) /*UNIT OF RECOVERY ID (LOG RBA OR ZEROS)*/
*

***********************************************************************
*  IFCID 0144 - FIRST ATTEMPTED ACCESS (READ) OF AN AUDITED OBJECT
*               WITHIN A UNIT OF RECOVERY
***********************************************************************
***********************************************************************
**** QW0144   DSECT
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0144, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00144')
***********************************************************************
COMP: QW0144_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>144 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0144   DISP(0) LEN(1) OFFSET(QW0144_OFFSET)
FLD: QW0144DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0144PS TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0144OB TYPE(HALF) DISP(4)  /*RECORD OBID*/
FLD: QW0144UR LEN(6) DISP(6) /*UNIT OF RECOVERY ID (LOG RBA OR ZEROS)*/

*******************************************************************
*   IFCID 0225 for storage manager pool summary statistics.       *
*******************************************************************
***********************************************************************
**** QW0225   DSECT           IFCID(QWHS0225)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0225, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00225')
***********************************************************************
COMP: QW0225_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>225 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0225   DISP(0) LEN(1) OFFSET(QW0225_OFFSET)  /*IFCID(QWHS0225)*/
*                             POINTED TO BY QWT02R10
FLD: QW0225AL LEN(4) TYPE(BIN) DISP(0)
                                  /*TOTAL AGENT LOCAL POOL STORAGE*/
FLD: QW0225AS LEN(4) TYPE(BIN) DISP(4)   /*TOTAL AGENT SYSTEM STORAGE*/
FLD: QW0225AV LEN(4) TYPE(BIN) DISP(8)      /*AMOUNT OF AVAIL STORAGE*/
FLD: QW0225CD LEN(4) TYPE(BIN) DISP(12)
                                  /*TOTAL COMPRESS DICTIONARY STORAGE*/
FLD: QW0225CR LEN(4) TYPE(BIN) DISP(16)
                                  /*STG RSRVD ONLY FOR MUST COMPLETE*/
FLD: QW0225FX LEN(4) TYPE(BIN) DISP(20)
                                  /*TOTAL FIXED STORAGE BELOW THE BAR*/
FLD: QW0225GM LEN(4) TYPE(BIN) DISP(24)
                              /*TOTAL GETMAINED STORAGE BELOW THE BAR*/
FLD: QW0225GS LEN(4) TYPE(BIN) DISP(28)
                                  /*TOTAL GETMAINED STACK STORAGE*/
FLD: QW0225MV LEN(4) TYPE(BIN) DISP(32)
                                  /*AMOUNT OF STORAGE FOR MVS USAGE*/
FLD: QW0225PM LEN(4) TYPE(BIN) DISP(36)
                                 /*TOTAL PIPE MANAGER SUBPOOL STORAGE*/
FLD: QW0225RO LEN(4) TYPE(BIN) DISP(40)   /*TOTAL RDS OP POOL STORAGE*/
FLD: QW0225RP LEN(4) TYPE(BIN) DISP(44)      /*TOTAL RID POOL STORAGE*/
FLD: QW0225SB LEN(4) TYPE(BIN) DISP(48)
                                /*TOTAL STATEMENT CACHE BLOCK STORAGE*/
FLD: QW0225SC LEN(4) TYPE(BIN) DISP(52)
                                  /*TOTAL STORAGE FOR THREAD COPIES*/
*                               OF CACHED SQL STATEMENTS
FLD: QW0225SO LEN(4) TYPE(BIN) DISP(56)
                                  /*STG CUSHION WARNING TO CONTRACT*/
FLD: QW0225TT LEN(4) TYPE(BIN) DISP(60)  /*TOTAL BM/DM INTERNAL TRACE*/
*                               TABLE STORAGE
FLD: QW0225VR LEN(4) TYPE(BIN) DISP(64)
                               /*TOTAL VARIABLE STORAGE BELOW THE BAR*/
FLD: QW0225AT LEN(4) TYPE(BIN) DISP(68)  /*# OF ACTIVE ALLIED THREADS*/
FLD: QW0225CE LEN(4) TYPE(BIN) DISP(72)        /*# OF CASTOUT ENGINES*/
FLD: QW0225DW LEN(4) TYPE(BIN) DISP(76) /*# OF DEFERRED WRITE ENGINES*/
FLD: QW0225GW LEN(4) TYPE(BIN) DISP(80)      /*# OF GBP WRITE ENGINES*/
FLD: QW0225PF LEN(4) TYPE(BIN) DISP(84)       /*# OF PREFETCH ENGINES*/
FLD: QW0225PL LEN(4) TYPE(BIN) DISP(88)
                                  /*# OF P LOCK/NOTIFY EXIT ENGINES*/
FLD: QW0225LO LEN(4) TYPE(BIN) DISP(92)      /*MVS 24 BIT LOW PRIVATE*/
FLD: QW0225HI LEN(4) TYPE(BIN) DISP(96)     /*MVS 24 BIT HIGH PRIVATE*/
FLD: QW0225EL LEN(4) TYPE(BIN) DISP(100)
                                  /*MVS 31 BIT EXTENDED LOW PRIVATE*/
FLD: QW0225EH LEN(4) TYPE(BIN) DISP(104)
                                  /*MVS 31 BIT EXTENDED HIGH PRIVATE*/
FLD: QW0225RG LEN(4) TYPE(BIN) DISP(108)
                                  /*MVS EXTENDED REGION SIZE (MAX)*/
FLD: QW0225EC LEN(4) TYPE(BIN) DISP(112)      /*MVS EXTENDED CSA SIZE*/
FLD: QW0225BB LEN(4) TYPE(BIN) DISP(116)
                                /*TOTAL BUFFER MANAGER STORAGE BLOCKS*/
*                             BELOW THE BAR
FLD: QW0225FA LEN(8) DISP(120)    /*TOTAL FIXED STORAGE ABOVE THE BAR*/
FLD: QW0225GA LEN(8) DISP(128)
                              /*TOTAL GETMAINED STORAGE ABOVE THE BAR*/
FLD: QW0225VA LEN(8) DISP(136) /*TOTAL VARIABLE STORAGE ABOVE THE BAR*/
FLD: QW0225SJ LEN(8) DISP(144)
                           /*TOTAL SJ OP POOL STORAGE (ABOVE THE BAR)*/
FLD: QW0225RL LEN(4) TYPE(BIN) DISP(152)
                                  /*Number of real frames (4K) in use*/
FLD: QW0225AX LEN(4) TYPE(BIN) DISP(156)
                              /*Number of auxiliary slots (4k) in use*/
FLD: QW0225LC LEN(4) TYPE(BIN) DISP(160)
                           /*# OF statements in CACHED SQL STATEMENTS*/
*                             pools
FLD: QW0225LS LEN(4) TYPE(BIN) DISP(164)
                             /*Allocated storage for thread copies in*/
*                             CACHED SQL STATEMENTS
FLD: QW0225HS LEN(4) TYPE(BIN) DISP(168)
                                  /*High water mark allocated storage*/
*                             for thread copies in CACHED
*                             SQL STATEMENTS pools
FLD: QW0225HC LEN(4) TYPE(BIN) DISP(172)
                                  /*High water mark # of statements*/
*                             in  CACHED SQL STATEMENTS pools
*                             at high storage time
FLD: QW0225HT LEN(8) DISP(176)    /*Timestamp at high water*/
FLD: QW0225F1 LEN(4) TYPE(BIN) DISP(184)          /*For servicability*/
FLD: QW0225F2 LEN(4) TYPE(BIN) DISP(188)          /*For servicability*/

*******************************************************************
*   IFCID 0226 FOR RMID 10 RECORDS THE EVENT THAT AN AGENT IS     *
*        READY TO SUSPEND ITSELF TO WAIT FOR A PAGE LATCH WHICH   *
*        IS CURRENTLY HELD BY ANOTHER AGENT.                      *
*******************************************************************
***********************************************************************
**** QW0226   DSECT           IFCID(QWHSO226)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0226, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00226')
***********************************************************************
COMP: QW0226_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>226 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0226   DISP(0) LEN(1) OFFSET(QW0226_OFFSET)  /*IFCID(QWHSO226)*/
FLD: QW0226DB TYPE(HALF) DISP(0)  /*DATABASE ID (DBID)*/
FLD: QW0226OB TYPE(HALF) DISP(2)  /*PAGESET OBID*/
FLD: QW0226PN LEN(3) DISP(4)      /*PAGE NUMBER TO READ/WRITE*/
FLD: QW0226F  LEN(1) DISP(7)      /*FLAG FOR TYPE OF LATCH*/
COMP: QW0226SL = 'S'              /*S LATCH*/
COMP: QW0226XL = 'X'              /*X LATCH*/
FLD: QW0226BP LEN(4) TYPE(BIN) DISP(8)
                               /*BUFFER POOL INTERNAL ID (0 49,80 89)*/
FLD: QW0226AC LEN(4) TYPE(BIN) DISP(12)      /*ACE TOKEN OF REQUESTOR*/
FLD: QW0226PG LEN(4) TYPE(BIN) DISP(16)   /*PAGE NUMBER TO READ/WRITE*/
FLD: QW0226FG LEN(1) DISP(20)     /*Table space type*/
COMP: QW0226F1 = 'N'              /*Non large table space*/
COMP: QW0226F2 = 'L'              /*NON EA 5 BYTE RID TABLE SPACE*/
COMP: QW0226F3 = 'V'              /*EA ENABLED 5 BYTE RID TABLE SPACE*/

***********************************************************************
*   IFCID 0254 For RMID 10 to record statistics related to SF
*        cache structures associated with DB2 Group Buffer Pools.
***********************************************************************
*
***********************************************************************
**** QW0254   DSECT          IFCID(QWHS0254)
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QW0254, USE:
* INPUT: SMF102V8
*        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00254')
***********************************************************************
COMP: QW0254_OFFSET =
  WHEN(SM102RTY<>102 OR QWHSIID<>254 OR QWT02R1N = 0) ASSIGN(99999)
  ELSE                                              ASSIGN(QWT02R1O)
FLD: QW0254   DISP(0) LEN(1) OFFSET(QW0254_OFFSET)  /*IFCID(QWHS0254)*/
FLD: QW0254GN LEN(4) TYPE(BIN) DISP(0)         /*Group buffer pool id*/
FLD: QW0254CI LEN(4) TYPE(BIN) DISP(4)       /*"Explicit XI counter".*/
*                            # of times a request was made to the
*                            coupling facility to explicitly
*                            cross-invalidate a page and XI
*                            signal(s) had to be sent because
*                            the named page was cached in one
*                            or more DB2 buffer pools
FLD: QW0254RH LEN(4) TYPE(BIN) DISP(8)          /*"Read Hit Counter".*/
*                            # of coupling facility read requests
*                            in which data was returned.
FLD: QW0254RD LEN(4) TYPE(BIN) DISP(12)
                                 /*"Read Miss Directory Hit Counter".*/
*                            # of coupling facility read requests for
*                            a page in which data was not returned but
*                            the page name was already assigned in the
*                            coupling facility directory (the coupling
*                            facility did not have to assign a new
*                            directory entry for the page).
FLD: QW0254RS LEN(4) TYPE(BIN) DISP(16)
                         /*"Read Miss Assignment Suppressed Counter".*/
*                            # of coupling facility read requests for
*                            a page in which data was not returned and
*                            the page name was not assigned in the
*                            coupling facility directory and directory
*                            name assignment was suppressed.  DB2 will
*                            request suppression of the directory entry
*                            assignment in cases where it does not need
*                            to register the page to the coupling
*                            facility for cross invalidation (XI); that
*                            is when this DB2 is the only one in the
*                            group with R/W interest in the
*                            pageset/partition.  Also includes pages
*                            deregistered due to buffer stealing.
FLD: QW0254RN LEN(4) TYPE(BIN) DISP(20)
                                 /*"Read Miss Name Assigned Counter".*/
*                            # of coupling facility read requests for
*                            a page in which data was not returned and
*                            the page name was not assigned in the
*                            coupling facility directory but a
*                            directory entry was successfully assigned
*                            to a new name.
FLD: QW0254RF LEN(4) TYPE(BIN) DISP(24)
                                  /*"Read Miss Cache Full Counter".*/
*                            # of coupling facility read requests for
*                            a page in which the page name was not
*                            assigned to a coupling facility directory
*                            entry and name assignment could not
*                            complete due to a lack of coupling
*                            facility storage resources.
FLD: QW0254WH LEN(4) TYPE(BIN) DISP(28)
                                  /*"Changed Page Write Hit Counter".*/
*                            # of coupling facility write requests for
*                            changed pages successfully completed.
FLD: QW0254WC LEN(4) TYPE(BIN) DISP(32)
                                  /*"Clean Page Write Hit Counter".*/
*                            # of coupling facility write requests for
*                            clean pages successfully completed.
FLD: QW0254WF LEN(4) TYPE(BIN) DISP(36)
                                  /*"Write Miss Cache Full Counter".*/
*                            # of coupling facility write requests that
*                            could not complete due to a lack of
*                            coupling facility storage resources.
FLD: QW0254DR LEN(4) TYPE(BIN) DISP(40)
                                 /*"Directory Entry Reclaim Counter".*/
*                            # of times that a page name assignment
*                            required that a coupling facility
*                            directory entry be reclaimed (stolen).
FLD: QW0254TR LEN(4) TYPE(BIN) DISP(44)
                                  /*"Data Entry Reclaim Counter".*/
*                            # of times that a page name assignment
*                            required that a coupling facility data
*                            entry be reclaimed (stolen).
FLD: QW0254XR LEN(4) TYPE(BIN) DISP(48)
                              /*"XI Directory Entry Reclaim Counter".*/
*                            # of times that a directory entry was
*                            stolen and XI signal(s) had to be sent
*                            because the page in the directory entry
*                            was cached in one or more DB2 buffer
*                            pools.
FLD: QW0254CC LEN(4) TYPE(BIN) DISP(52)          /*"Castout Counter".*/
*                            # of castout operations performed.
FLD: QW0254DE LEN(4) TYPE(BIN) DISP(56)  /*"Directory Entry Counter".*/
*                            # of allocated directory entries (snapshot
*                            value, not cumulative).
FLD: QW0254TE LEN(4) TYPE(BIN) DISP(60)       /*"Data Entry Counter".*/
*                            # of allocated data entries (snapshot
*                            value, not cumulative).
FLD: QW0254TC LEN(4) TYPE(BIN) DISP(64)    /*"Total Changed Counter".*/
*                            # of allocated data entries that are
*                            currently in "changed" state (snapshot
*                            value, not cumulative).
FLD: QW02542W LEN(4) TYPE(BIN) DISP(68)
                                  /*"Changed Page Write Hit Counter"*/
*                            for the secondary group buffer pool.
*                            # of coupling facility write requests for
*                            changed pages successfully completed.
FLD: QW02542F LEN(4) TYPE(BIN) DISP(72)
                                  /*"Write Miss Cache Full Counter"*/
*                            for the secondary group buffer pool.
*                            # of coupling facility write requests that
*                            could not complete due to a lack of
*                            coupling facility storage resources.
FLD: QW02542D LEN(4) TYPE(BIN) DISP(76)   /*"Directory Entry Counter"*/
*                            for the secondary group buffer pool.
*                            # of allocated directory entries (snapshot
*                            value, not cumulative).
FLD: QW02542T LEN(4) TYPE(BIN) DISP(80)        /*"Data Entry Counter"*/
*                            for the secondary group buffer pool.
*                            # of allocated data entries (snapshot
*                            value, not cumulative).
FLD: QW02542C LEN(4) TYPE(BIN) DISP(84)     /*"Total Changed Counter"*/
*                            for the secondary group buffer pool.
*                            # of allocated data entries that are
*                            currently in "changed" state (snapshot
*                            value, not cumulative).


FLD: SMF102_END LEN(1) OFFSET(0)

 


 

Sample Report from SMF 102, IFCID 144 Records
DB2 Audit Report -- Users Accessing Selected Tables


The sample SMF report below was created with
Spectrum SMF Writer, the low-cost 4GL SMF report writer.

In this report, the primary input file is the SMF file. We select just the type 102 "DB2 Audit" records with IFCID 144 ("ATTEMPTED ACCESS (READ) OF AN AUDITED OBJECT"). (See SMF 102 record layout.) We normalize the 144 data section, in order to report on all occurances of that segment within each SMF record.

We select the records for the timeframe and the tables we are interested in. (Alternately, we could have selected on Operator ID, to see all tables accessed by a given user.)

This example also illustrates Spectrum SMF Writer's DB2 Option. The SMF record itself does not contain the text name of the tables being accessed. It just contains halfword codes for: Database ID, Page Space ID and Object ID. However, we were able to use those codes to "select" rows from two DB2 system tables and expand those codes into full names. Thus we were able to show the actual table names in our report.

All of this with just a few lines of code!
Why not install a Spectrum SMF Writer trial right now and start making your own SMF reports!

These Spectrum SMF Writer Statements:

OPTION: DB2SUBSYS('DB2T') NOGRANDTOTALS
*
*   THE MAIN INPUT FILE IS THE SMF FILE. WE NORMALIZE TO GET ALL SEGMENTS
INPUT:  SMF102V9  LIST(YES)
        IOEXIT('GENNORM','A 102 --- 036 2I N | 028 004 2 00144') 
*
*   LOOK UP SPACE NAME IN IBM SYSTEM DB2 TABLE
READ:  SPACE   SHOWFLDS(YES)
       DB2NAME('SYSIBM.SYSTABLESPACE')
       WHERE(DBID = QW0144DB AND PSID = QW0144PS)
*
*   LOOK UP TABLE NAME IN IBM SYSTEM DB2 TABLE
READ:  TABLE   SHOWFLDS(YES)
       DB2NAME('SYSIBM.SYSTABLES')
       WHERE(TABLE.DBID = QW0144DB AND TABLE.OBID = QW0144OB)
*
*   SELECT THE RECORDS WE WANT FOR THE REPORT
INCLUDEIF: SM102RTY = 102
           AND QWHSIID = 144
           AND SM102DTE = 4/11/10
           AND SM102TME >= 18:00:00 AND < 19:00:00
           AND SPACE.NAME : 'FLOAT'
***        AND QWHCOPID = 'TTP011A'
*
*   SELECT THE DATA FIELDS TO PRINT IN THE REPORT
COLUMNS:
     SM102RTY(3 'SMF|REC|TYP')
     QWHSIID(4 'IFC|ID')
     SM102DTE('SMF|LOG DATE')
     SM102TME('SMF|LOG TIME')
     QWHCCN('CONNECT|NAME')
     QWHCPLAN('PLAN|NAME')
     QWHCOPID('OPERATOR/ID')
     QW0144DB(4 'DBID')
     SPACE.NAME(16 'DBID|NAME')
     QW0144PS(4 'PSID')
     QW0144OB(4 'OBID')
     TABLE.NAME(16 'OBID|NAME')
*
*   SPECIFY REPORT TITLES
TITLE: 'DB2 AUDIT REPORT FROM SMF 102 RECORDS'
TITLE: 'ACCESS TO TABLES BEGINNING WITH "FLOAT"'

 

Produce This SMF Report:

                                    DB2 AUDIT REPORT FROM SMF 102 RECORDS
                                   ACCESS TO TABLES BEGINNING WITH "FLOAT"
 SMF 
 REC IFC    SMF        SMF     CONNECT    PLAN                          DBID                       OBID
 TYP  ID  LOG DATE  LOG TIME     NAME     NAME   OPERATOR/ID DBID       NAME       PSID OBID       NAME
 ___ ____ ________ ___________ ________ ________ ___________ ____ ________________ ____ ____ ________________

 102  144 04/11/10 18:37:40.13 TSO      ADB       TTP011A      291 FLOATACC1           2    3 FLOATAAC1
 102  144 04/11/10 18:37:54.06 TSO      ADB       TTP011A      291 FLOATACC1           2    3 FLOATAAC1
 102  144 04/11/10 18:38:09.56 TSO      ADB       TTP011A      291 FLOATACC1           2    3 FLOATAAC1
 102  144 04/11/10 18:38:19.11 TSO      ADB       TTP011A      292 FLOATTEMP           2    3 FLOATTEMP
 102  144 04/11/10 18:38:31.80 TSO      ADB       TTP011A      292 FLOATTEMP           2    3 FLOATTEMP
 102  144 04/11/10 18:48:35.58 DB2CALL  SPECT303  TTP011A      292 FLOATTEMP           2    3 FLOATTEMP
 102  144 04/11/10 18:49:29.27 DB2CALL  SPECT303  TTP011A      291 FLOATACC1           2    3 FLOATAAC1

See other sample SMF reports.

Copyright 2024.
Pacific Systems Group.
All rights reserved.
Home | Products | Prices | Documentation | 30-Day Trials | Customer Reviews | Company | FAQ | Sample Reports | SMF Records
Send Your Comments or Questions