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 101 Record

This table shows the record layout for type 101 SMF records
(DATABASE 2 (V11) Accounting).

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

Purpose: DATABASE 2 (DB2) writes record type 101 to account for resources during a transaction.


It's easy to report on SMF 101 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 101 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 101 SMF Records
DATABASE 2 (V11) Accounting

***********************************************************************
*          SPECTRUM SMF WRITER -- FILE DEFINITION STATEMENTS          *
*         SMF TYPE 101 RECORD - "DATABASE 2 (V11) ACCOUNTING"         *
***********************************************************************
OPTION: MISSOFFSET /* TREAT OFFSET ERRORS (99999) LIKE MISSING DATA */
OPTION: STCKADJ(0) /* NO GMT TO LOCAL CONVERSION - DURATIONS*/
**********************************************************************
* DB2 SUBTYPE 0 ACCOUNTING RECORD SECTION MAPPING.                   *
*  SMF EXTERNALIZED AS A SMF TYPE 101 RECORD                         *
*(SEE SYSTEM PLANNING AND ADMINISTRATION GUIDE FOR ADDITIONAL DETAIL)*
**********************************************************************
*                      *                                             *
*   DSECT   MACRO      *  DESCRIPTION OF SECTIONS IN RECORD          *
*                      *                                             *
*--------------------------------------------------------------------*
*   SM101   DSNDQWAS   *  SMF HEADER SECTION                         *
*--------------------------------------------------------------------*
*                  IFCID 0003 FOLLOWS                                *
*  NOTE: FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA            *
*--------------------------------------------------------------------*
*                      *
*   QWA0    DSNDQWA0   *  SELF DEFINING SECTION - NOTE: USE OFFSETS
*                      *   IN QWA0 TO GET TO THE FOLLOWING SECTIONS
*                      *   BECAUSE THEIR EXACT POSITION VARIES
*----------------------*
*                      *  See DSNDQWA0 for parsing algorithm for
*                      *  varying length repeating group section(s):
*                      *  QLAC
*                      *
*                      *  Important rollup information: A rollup
*                      *  IFCID3 will not contain data section
*                      *  11 mapped by DSNDQWDA. This data
*                      *  section is NOT eligible for rollup.
*                      *  Data section 8 mapped by DSNDQWAR will
*                      *  only be written for DDF/RRSAF rollup
*                      *  records (i.e., QWACPARR = ON and
*                      *  QWACRINV = QWACRACC, QWACRSTG, or
*                      *  QWACRSTL).
*                      *
*                      *  PRODUCT SECTION. THE SECTION
*                      *  NORMALLY APPEARS AT THE END OF RECORD.
*   QWHS    DSNDQWHS   *  STANDARD HEADER ALWAYS PRESENT
*    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
*                      *FOLLOWING SECTIONS BEGIN ON A WORD BOUNDARY
*   QWAC    DSNDQWAC   *  IFC ACCOUNTING INFORMATION
*   QXST    DSNDQXST   *  SQL  ACCOUNTING
*   QBAC    DSNDQBAC   *  BUFFER MANAGER ACCOUNTING
*   QTXA    DSNDQTXA   *  LOCKING ACCOUNTING
*   QLAC    DSNDQLAC   *  DDF ACCOUNTING
*   QMDA    DSNDQMDA   *  MVS AND DDF ACCOUNTING INFORMATION
*   QIFA    DSNDQIFA   *  CHANGED DATA CAPTURE ACCOUNTING
*   QWAR    DSNDQWAR   *  ROLLUP ACCOUNTING CORRELATION DATA
*   QBGA    DSNDQBGA   *  BUFFER MANAGER DATA SHARING ACCOUNTING
*   QTGA    DSNDQTGA   *  DATA SHARING GLOBAL LOCKING ACCOUNTING
*   QWDA    DSNDQWDA   *  DATA SHARING ACCOUNTING DATA MAPPING
*   QWAX    DSNDQWAX   *  ACCOUNTING CLASS 3 OVERFLOW
*   Q8AC    DSNDQ8AC   *  ACCELERATOR SERVICES ACCOUNTING BLOCK     
************************
*
*
FLD: QWAS     LEN(4) TYPE(BIN) DISP(0)
* SMF COMMON HEADER MAPPING MACRO FOR ACCOUNTING  (SMF 101)
FLD: SM101LEN LEN(2) DISP(0)      /*SM101 TOTAL LENGTH*/
FLD: SM101SGD LEN(2) DISP(2)      /*ZZ BYTES*/
FLD: SM101FLG LEN(1) DISP(4)      /*SYSTEM INDICATOR*/
FLD: SM101RTY LEN(1) DISP(5)      /*RECORD TYPE X'65'*/
FLD: SM101TME LEN(4) TYPE(B-SECS) DISP(6) DEC(2)
                                  /*TIME SMF MOVED RECORD*/
FLD: SM101DTE TYPE(P-CYYDDD) DISP(10)         /*DATE SMF MOVED RECORD*/
FLD: SM101SID LEN(4) DISP(14)     /*SYSTEM ID (SID)*/
FLD: SM101SSI LEN(4) DISP(18)     /*SUBSYSTEM ID*/
FLD: SM101STF LEN(2) DISP(22)     /*SMF RECORD SUBTYPE*/
FLD: SM101SQ  LEN(4) DISP(24)
COMP: SM101CMP = X'80'        /*THIS RECORD IS COMPRESSED BY CSRCESRV*/
FLD: SM101BUF LEN(4) TYPE(BIN) DISP(24)
                             /*UNCOMPRESSED DATA LENGTH. THIS WILL BE*/
*                              0 FOR UNCOMPRESSED RECORDS.
FLD: SM101END LEN(1) DISP(28)    /*START OF THE SELF DEFINING SECTION*/
***********************************************************************
**** QWA0     DSECT                                                     
***********************************************************************

FLD: QWA0     DISP(0) LEN(1) OFFSET(28)
*
*  /* DB2 SELF DEFINING SECTION MACRO FOR ACCOUNTING IFCID=0003      */
*
*  /*  PRODUCT SECTION FOR ACCOUNTING CONTAINS TWO HEADERS
*    1.THE STANDARD HEADER IS MAPPED BY DSNDQWHS
*    2.THE CORRELATION HEADER IS MAPPED BY DSNDQWHC                  */
*                                                                     *
****IMPORTANT PARSING INFORMATION*****IMPORTANT PARSING INFORMATION****
*                                                                     *
* The length field for any (offset,length,number of data sections)    *
* triplet can legally be zero with a non-zero offset.  This indicates *
* 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.                  *
*                                                                     *
* 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.                                       *
*                                                                     *
*
FLD: QWA01PSO LEN(4) TYPE(BIN) DISP(0)
                                  /*OFFSET TO THE PRODUCT SECTION*/
FLD: QWA01PSL LEN(2) TYPE(BIN) DISP(4)
                                  /*LENGTH OF THE PRODUCT SECTION*/
FLD: QWA01PSN LEN(2) TYPE(BIN) DISP(6)   /*NUMBER OF PRODUCT SECTIONS*/
*  /*        FOR RMID 026   MAPPED BY DSNDQWAC                       */
FLD: QWA01R1O LEN(4) TYPE(BIN) DISP(8)   /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R1L LEN(2) TYPE(BIN) DISP(12)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R1N LEN(2) TYPE(BIN) DISP(14)     /*NUMBER OF DATA SECTIONS*/
*  /*        FOR RMID XXX   MAPPED BY DSNDQXST        SQL            */
FLD: QWA01R2O LEN(4) TYPE(BIN) DISP(16)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R2L LEN(2) TYPE(BIN) DISP(20)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R2N LEN(2) TYPE(BIN) DISP(22)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID XXX   MAPPED BY DSNDQBAC         BUFFER MANAGER       */
FLD: QWA01R3O LEN(4) TYPE(BIN) DISP(24)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R3L LEN(2) TYPE(BIN) DISP(28)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R3N LEN(2) TYPE(BIN) DISP(30)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID XXX   MAPPED BY DSNDQTXA         LOCK MANAGER         */
FLD: QWA01R4O LEN(4) TYPE(BIN) DISP(32)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R4L LEN(2) TYPE(BIN) DISP(36)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R4N LEN(2) TYPE(BIN) DISP(38)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID XXX   MAPPED BY DSNDQLAC - DDF - V2R2                 */
FLD: QWA01R5O LEN(4) TYPE(BIN) DISP(40)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R5L LEN(2) TYPE(BIN) DISP(44)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R5N LEN(2) TYPE(BIN) DISP(46)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID XXX   MAPPED BY DSNDQMDA - MVS AND DDF - V2R3         */
FLD: QWA01R6O LEN(4) TYPE(BIN) DISP(48)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R6L LEN(2) TYPE(BIN) DISP(52)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R6N LEN(2) TYPE(BIN) DISP(54)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID 026   MAPPED BY DSNDQIFA - IFI ACCOUNTING - V3R1      */
FLD: QWA01R7O LEN(4) TYPE(BIN) DISP(56)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R7L LEN(2) TYPE(BIN) DISP(60)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R7N LEN(2) TYPE(BIN) DISP(62)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID 026   MAPPED BY DSNDQWAR - ROLLUP ACCTG CORRELATION   */
FLD: QWA01R8O LEN(4) TYPE(BIN) DISP(64)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R8L LEN(2) TYPE(BIN) DISP(68)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R8N LEN(2) TYPE(BIN) DISP(70)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID 010   MAPPED BY DSNDQBGA - BUF MGR DATA SHR ACCT      */
FLD: QWA01R9O LEN(4) TYPE(BIN) DISP(72)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01R9L LEN(2) TYPE(BIN) DISP(76)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01R9N LEN(2) TYPE(BIN) DISP(78)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID 020   MAPPED BY DSNDQTGA - GLBL DATA SHR ACCT         */
FLD: QWA01RAO LEN(4) TYPE(BIN) DISP(80)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01RAL LEN(2) TYPE(BIN) DISP(84)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01RAN LEN(2) TYPE(BIN) DISP(86)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID 026   MAPPED BY DSNDQWDA - DATA SHARING ACCT.  V4R1   */
FLD: QWA01RBO LEN(4) TYPE(BIN) DISP(88)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01RBL LEN(2) TYPE(BIN) DISP(92)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA01RBN LEN(2) TYPE(BIN) DISP(94)     /*NUMBER OF DATA SECTIONS*/
*  /* FOR RMID 026   MAPPED BY DSNDQWAX - ACCTG CLASS 3 OVERFLOW. V6 */
FLD: QWA01RCO LEN(4) TYPE(BIN) DISP(96)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA01RCL LEN(2) TYPE(BIN) DISP(100) /*LENGTH OF THE DATA SECTION*/
FLD: QWA01RCN LEN(2) TYPE(BIN) DISP(102)    /*NUMBER OF DATA SECTIONS*/
*/*   FOR RMID 033 MAPPED BY DSNDQ8AC - ACCEL SVCS SYSTEM ACCOUNTING */
FLD: QWA01RDO LEN(4) TYPE(BIN) DISP(104) /*OFFSET TO THE DATA SECTION*/
FLD: QWA01RDL LEN(2) TYPE(BIN) DISP(108) /*LENGTH OF THE DATA SECTION*/
FLD: QWA01RDN LEN(2) TYPE(BIN) DISP(110)    /*NUMBER OF DATA SECTIONS*/
FLD: QWA01END LEN(1) DISP(112)    /*END OF THE SELF DEFINING SECTION*/
*                                                                      
***********************************************************************
**** QWHS     DSECT                                                     
***********************************************************************

COMP: QWHS_OFFSET =
           WHEN(SM101RTY=101 AND QWA01PSN > 0) ASSIGN(QWA01PSO)
           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: QWHSSID  LEN(4) DISP(82)     /*THE MVS SYSTEM ID (SID)*/
FLD: QWHSEND  LEN(1) DISP(86)     /*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*/
**** USE THESE TO QUICKLY ID RECORD TYPE 
COMP: SMF101_IFCID3   = WHEN(QWHSIID=3)   ASSIGN(#ON)
COMP: SMF101_IFCID239 = WHEN(QWHSIID=239) ASSIGN(#ON)
*
*
***********************************************************************
*    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 = QWA01PSO + QWA01PSL /* -> PAST ALL HDRS*/
*
***********************************************************************
* DEFINE JUST THE LENGTH AND TYPE OF THE 2ND HEADER SECTION PRESENT   *
***********************************************************************
COMPUTE: PSHDR_2_TEST_OFFSET = QWA01PSO + 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)
***********************************************************************
**** 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  */
*                      /* specialty engine.                     */
*                      /* 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: QWHUSE   TYPE(STCKTIME) DISP(14)
                               /*CPU time of the currently dispatched*/
*                      /* execution unit (TCB or SRB) consumed  */
*                      /* on an IBM speciailty engine.          */
*                                                                     
*                      /* 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. This is true for both QWHUCPU */
*                      /* and QWHUSE.                           */  

FLD: QWHUEND  LEN(1) DISP(22)
***********************************************************************
**** 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)      /*RESERVED*/
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*/
FLD: QWHTFUNCG TYPE(HALF) DISP(40)/*FUNC SPECIFIED DSNWTRC MACRO*/
FLD: QWHTDATA LEN(4) TYPE(BIN) DISP(44)         /*ADDRESS OF THE DATA*/
FLD: QWHTFLAG TYPE(HALF) DISP(48) /*FLAGS IN THE TRACE LIST*/
FLD: QWHTDATL TYPE(HALF) DISP(50) /*LENGTH OF THE DATA*/
FLD: QWHTEND  LEN(4) TYPE(BIN) DISP(52)
FLD: QWHTALET LEN(4) TYPE(BIN) DISP(52)   /*ALET TOKEN FOR DATA FIELD*/
*
***********************************************************************
**** 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        */
*                                  /* Trusted context and role data  */
*                                  /* will be present if the record  */
*                                  /* is written by an agent running */
*                                  /* under a trusted context and    */
*                                  /* the trusted context data can   */
*                                  /* be accessed.                   */
FLD: QWHCTCXT_OFF TYPE(HALF) DISP(148)          /*Offset from QWHC to*/
*                                  /* Trusted Context name, if       */
*                                  /* running in a trusted context   */
FLD: QWHCROLE_OFF TYPE(HALF) DISP(150)          /*Offset from QWHC to*/
*                                  /* Role name associated with the  */
*                                  /* Authorization ID, if running   */
*                                  /* in a trusted context           */
FLD: QWHCOAUD_OFF TYPE(HALF) DISP(152) /*Offset from QWHC to original*/
*                                  /* application USERID             */
FLD: QWHCCTKN_OFF TYPE(HALF) DISP(154)          /*Offset from QWHC to*/
*                                  /* the correlation token.         */
FLD: QWHCEND  LEN(4) TYPE(BIN) DISP(156)
*
*
***********************************************************************
**** 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)   /*Length 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)  /*Length 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)  /*Length of the following field*/
FLD: QWHCEUID_VAR LEN(128) DISP(2)/*END USER'S USERID*/
*
*
***********************************************************************
**** QWHCTCXT_D   DSECT            /* Use if QWHCTCXT_Off^=0         */ 
***********************************************************************

COMP: QWHCTCXT_D_OFFSET =
           WHEN(QWHC_OFFSET <> 99999 AND QWHCTCXT_Off <> 0)
                    ASSIGN(QWHC_OFFSET + QWHCTCXT_Off)
           ELSE     ASSIGN(99999)
FLD: QWHCTCXT_D DISP(0) LEN(1) OFFSET(QWHCTCXT_D_OFFSET)
                                  /*Use if QWHCTCXT_Off^ 0*/
FLD: QWHCTCXT_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QWHCTCXT_VAR LEN(128) DISP(2)/*%U Trusted Context name*/
*
*
***********************************************************************
**** QWHCROLE_D   DSECT            /* Use if QWHCROLE_Off^=0         */ 
***********************************************************************

COMP: QWHCROLE_D_OFFSET =
           WHEN(QWHC_OFFSET <> 99999 AND QWHCROLE_Off <> 0)
                    ASSIGN(QWHC_OFFSET + QWHCROLE_Off)
           ELSE     ASSIGN(99999)
FLD: QWHCROLE_D DISP(0) LEN(1) OFFSET(QWHCROLE_D_OFFSET)
                                  /*Use if QWHCROLE_Off^ 0*/
FLD: QWHCROLE_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QWHCROLE_VAR LEN(128) DISP(2)/*%U Role name associated with*/
*                                  /*    authid                      */
*
***********************************************************************
**** QWHCOAUD_D   DSECT            /* Use if QWHCOAUD_Off^=0         */ 
***********************************************************************

COMP: QWHCOAUD_D_OFFSET =
           WHEN(QWHC_OFFSET <> 99999 AND QWHCOAUD_Off <> 0)
                    ASSIGN(QWHC_OFFSET + QWHCOAUD_Off)
           ELSE     ASSIGN(99999)
FLD: QWHCOAUD_D DISP(0) LEN(1) OFFSET(QWHCOAUD_D_OFFSET)
                                  /*Use if QWHCOAUD_Off^ 0*/
FLD: QWHCOAUD_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QWHCOAUD_VAR LEN(128) DISP(2)/*%U Original application USERID*/
*
*
***********************************************************************
**** QWHCCTKN_D   DSECT            /* Use if QWHCCTKN_Off,=0         */ 
***********************************************************************

COMP: QWHCCTKN_D_OFFSET =
           WHEN(QWHC_OFFSET <> 99999 AND QWHCCTKN_Off <> 0)
                    ASSIGN(QWHC_OFFSET + QWHCCTKN_Off)
           ELSE     ASSIGN(99999)
FLD: QWHCCTKN_D DISP(0) LEN(1) OFFSET(QWHCCTKN_D_OFFSET)
                                  /*Use if QWHCCTKN_Off, 0*/
FLD: QWHCCTKN_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QWHCCTKN_VAR LEN(128) DISP(2)/*%U Correlation token.*/
*
*
*/*****************************************************************/
*/*      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*/
***********************************************************************
**** 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*/
***********************************************************************
**** QWAC     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QWAC, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01R1N > 0)
*           NORMALIZE(QWAC, QWA01R1N)
***********************************************************************
COMP: QWAC_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01R1N > 0) ASSIGN(QWA01R1O)
           ELSE                                 ASSIGN(99999)
FLD: QWAC     DISP(0) LEN(528) OFFSET(QWAC_OFFSET)
*
*/********************************************************************/
*/*     INSTRUMENTATION ACCOUNTING DATA FOR IFCID=0003               */
*/********************************************************************/
*/********************************************************************
*  NOTE: If QWACPARR is on in QWACFLGS, this is a rollup record.     *
*        A rollup record is written with accumulated                 *
*        counter data for the following type of threads:             *
*                                                                    *
*        - Query parallelism child tasks, if ZPARM PTASKROL = YES    *
*        - DDF and RRSAF threads, is ZPARM ACCUMACC is >= 2          *
*                                                                    *
*        Query parallelism child tasks:                              *
*        A rollup record is written with accumulated counter data    *
*        when the parent task (agent) deallocates on an originating  *
*        DB2, or when an accumulating child task deallocated on an   *
*        assisting DB2.  The rollup data is an accumulation of all   *
*        the counters for that field for each child task that        *
*        completed and deallocated.                                  *
*                                                                    *
*        DDF and RRSAF threads:                                      *
*        A rollup record is written with accumulated counter data    *
*        for a given end user when the number of occurrences of that *
*        end user reaches the ZPARM value for ACCUMACC. End user     *
*        user is the concatenation of the following three            *
*        values as defined by ZPARM ACCUMUID:                        *
*          - End user userid (QWHEUID, 16 bytes)                     *
*          - End user transaction name (QWHCEUTX, 32 bytes)          *
*          - End user workstation name (QWHCEUWN, 18 bytes)          *
*                                                                    *
*        The following fields are invalid for rollup records:        *
*                                                                    *
*          QWACBJST QWACBSRB QWACESRB                                *
*                                                                    *
*        The following fields are redefined for rollup records:      *
*                                                                    *
*          QWACESC QWACEJST QWACBSC                                  *
*                                                                    *
*        QWACESC and QWACEJST contain the accumulated elapsed and    *
*        CPU times respectively for all child tasks or all DDF/RRSAF *
*        threads rolled into the record. For DDF/RRSAF rollup        *
*        records, QWACBSC represents the earliest store clock value  *
*        for a thread that has rolled data into the record.          *
*                                                                    *
*        For DDF/RRSAF rollup records the following values are       *
*        derived from last thread to rollup:                         *
*                                                                    *
*          QWACWLME QWACNID                                          *
*                                                                    *
**********************************************************************/
*
*/********************************************************************
*  NOTE: FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA
*
*    NOTE - THE FOLLOWING TIMES INDICATE A LEVEL OF ACTIVITY FOR
*    THE THREAD ADDRESS SPACE DURING THE PERIOD OF TIME THE
*    AUTHORIZATION ID WAS ACTIVE BUT SHOULD BE USED WITH CAUTION
*    FOR CHARGE BACK BECAUSE CPU AND ELAPSED TIMES ARE OBTAINED WHEN
*    THE CREATE THREAD OR SIGNON REQUEST UNDER A THREAD IS SUCCESSFUL
*    OR HAS BEEN TERMINATED.  SINCE THESE REQUESTS PROBABLY WILL NOT
*    OCCUR AT TRANSACTION/APPLICATION PROGRAM SCHEDULING OR TERMINATION
*    THE TIMES MAY NOT ACCURATELY REPRESENT A USERS ACIVITY.  AN
*    EXCEPTION TO THE ABOVE STATEMENT IS FOR IMS APPLICATION PROGRAMS
*    WHICH ALWAYS MAKE A SQL CALL IN THE BEGINNING OF THE PROGRAM AND
*    ARE RUNNING AS MODE SINGLE TRANSACTIONS OR AS NON TRANSACTION
*    DRIVEN BMPS. THEN THE TIMES RECORDED BELOW DO APPROXIMATE TIME
*    ASSOCIATED WITH A SPECIFIC AUTHORIZATION ID.                    */
*
*/********************************************************************/
*
FLD: QWACBSC  TYPE(STCKTIME) DISP(0)    /*BEGINNING STORE CLOCK VALUE*/
FLD: QWACESC  TYPE(STCKTIME) DISP(8)       /*ENDING STORE CLOCK VALUE*/
*
*/********************************************************************
*  WHEN A CICS APPLICATION PROGRAM CAUSES MORE THAN ONE SYNC POINT   *
*  COMMIT OR ROLLBACK TO OCCUR, THEN IT IS POSSIBLE TO HAVE MULTIPLE *
*  ACCOUNTING RECORDS AND ACCOUNTING RECORDS OUT OF SEQUENCE FOR THE *
*  APPLICATION IF CICS ATTACH THREAD SWAPPING OCCURS.                *
**********************************************************************/
*
FLD: QWACBJST TYPE(STCKTIME) DISP(16)
                            /*Beginning CPU time for all environments*/
*                        /*(CICS, IMS, TSO, etc.). This CPU time     */
*                        /*does not include CPU consumed on an IBM   */
*                        /*specialty engine.                         */
*
*/********************************************************************
* QWACEJST VALUES MAY BE INVALID WHEN  WHEN THE QWACRINV VALUE       *
*  EXCEEDS DECIMAL 20.                                               *
* QWACEJST MAY BE ZERO WHEN QWACRINV IS EQUAL TO DECIMAL 20.         *
* QWACEJST VALUES MAY BE INVALID FOR END OF MEMORY CONDITIONS.       *
**********************************************************************/
*
FLD: QWACEJST TYPE(STCKTIME) DISP(24)
                               /*Ending CPU time for all environments*/
*                        /*(CICS, IMS, TSO, etc.). This CPU time     */
*                        /*does not include CPU consumed on an IBM   */
*                        /*specialty engine.                         */
FLD: QWACBSRB LEN(8) DISP(32)   /*SRB times are no longer set by DB2.*/
FLD: QWACESRB LEN(8) DISP(40)   /*SRB times are no longer set by DB2.*/
FLD: QWACRINV LEN(4) DISP(48)
                             /*REASON ACCOUNTING IS INVOKED SEE BELOW*/
FLD: QWACNID  LEN(16) DISP(52)    /*NETWORK ID VALUE FROM CCB*/
FLD: QWACCOMM LEN(4) TYPE(BIN) DISP(68)
                                  /*NUMBER OF COMMIT PHASE 2 REQUESTS*/
FLD: QWACABRT LEN(4) TYPE(BIN) DISP(72)    /*NUMBER OF ABORT REQUESTS*/
*
*/*********************************************************************
*  THE FOLLOWING VALUES THROUGH QWACARNS ARE CALCULATED IF THE
*   OPTIONAL ACCOUNTING CLASSES ARE STARTED
**********************************************************************/
*
FLD: QWAC1    LEN(4) TYPE(BIN) DISP(76)
*
*/*********************************************************************
*  THE FOLLOWING VALUES ARE CALCULATED FOR THREADS BY TAKING THE
*   STCK TIME, AND ASCB TCB TIMES ON ENTRY TO DB2 AND
*   SUBTRACTING THE CORRESPONDING TIMES ON EXIT FROM DB2. THE MAJORITY
*   OF THREAD ALLOCATION AND CERTAIN ABEND CONDITIONS ARE NOT INCLUDED.
*   THE ELAPSED AND TCB TIMES WILL NOT BE EXACTLY THE SAME AS VALUES
*   THAT MIGHT BE DERIVED FROM A SUMMATION OF DELTA VALUES BETWEEN
*   IFCID 121 AND 122 COMBINATIONS, BECAUSE THE TIMES ARE NOT TAKEN
*   AT EXACTLY THE SAME TIME.
**********************************************************************/
*
FLD: QWACASC  TYPE(STCKTIME) DISP(76)
                                  /*ACCUMULATED ELAPSED TIME IN DB2*/
FLD: QWACAJST TYPE(STCKTIME) DISP(84)
                                /*Accumulated CPU time consumed while*/
*                     /* executing in DB2.  This CPU time does not  */
*                     /* include CPU consumed on an IBM specialty   */
*                     /* engine. In addition, this time does not    */
*                     /* include CPU consumed while processing SQL  */
*                     /* statements in a stored procedure.          */
FLD: QWACASRB LEN(8) DISP(92)    /*SRB times are no longer set by DB2*/
*
*/********************************************************************
*  THE FOLLOWING TWO VALUES ARE CALCULATED FOR THREADS BY TAKING THE
*   STCK TIME ON ENTRY TO EVENT WAIT AND SUBTRACTING STCK ON EXIT
*   RESUME FROM THE EVENT.
**********************************************************************/
*
FLD: QWACAWTI TYPE(STCKTIME) DISP(100)
                              /*ACCUMULATED I/O ELAPSED WAIT TIME FOR*/
*                         database I/O done under this thread       */
FLD: QWACAWTL TYPE(STCKTIME) DISP(108)
                                 /*Accumulated wait time due to local*/
*                         contention for locks. The term "local
*                         contention" is used to differentiate from
*                         "global contention" (which is reported in
*                         QWACAWTJ).  Local contention does not require
*                         inter-system communication - the contention
*                         is detected  and resolved entirely within
*                         this  subsystem.                          */
FLD: QWACARNA LEN(4) TYPE(BIN) DISP(116)
                          /*NUMBER OF DB2 ENTRY/EXIT EVENTS PROCESSED*/
*                     /* BY THE ALLIED ADDRESS SPACE.  IT DOES NOT  */
*                     /* INCLUDE SQL ENTRY/EXIT EVENTS PERFORMED BY */
*                     /* A STORED PROCEDURE.                        */
FLD: QWACARNE LEN(4) TYPE(BIN) DISP(120)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                     /*  WAITS FOR database I/O UNDER THIS THREAD  */
*
*/*********************************************************************
*  THE FOLLOWING THREE VALUES ARE CALCULATED FOR THREADS BY TAKING THE
*   STCK TIME ON ENTRY TO EVENT WAIT AND SUBTRACTING STCK ON EXIT
*   RESUME FROM THE EVENT.
**********************************************************************/
*
FLD: QWACAWTR TYPE(STCKTIME) DISP(124)
                            /*ACCUMULATED WAIT TIME FOR READ I/O THAT*/
*                         IS DONE UNDER A THREAD OTHER THAN THIS
*                         ONE.                                      */
FLD: QWACAWTW TYPE(STCKTIME) DISP(132)
                           /*ACCUMULATED WAIT TIME FOR WRITE I/O THAT*/
*                         IS DONE UNDER A THREAD OTHER THAN THIS
*                         ONE.                                      */
FLD: QWACAWTE TYPE(STCKTIME) DISP(140)
                           /*Accumulated wait time due to synchronous*/
*                         execution unit switch for DB2 commit,
*                         abort, or deallocation processing. For
*                         RRSAF threads, this value include
*                         explicit commit time (SRRCMIT calls).
*                         See QWACAWLG for implicit RRS commit
*                         time.                                     */
FLD: QWACAWLH TYPE(STCKTIME) DISP(148)
                                 /*Accumulated wait time due to latch*/
*                         contention                                */
FLD: QWACARNL LEN(4) TYPE(BIN) DISP(156)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                         WAITS FOR LOCAL CONTENTION FOR LOCKS.
FLD: QWACARNR LEN(4) TYPE(BIN) DISP(160)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                         WAITS FOR READ I/O UNDER ANOTHER THREAD   */
FLD: QWACARNW LEN(4) TYPE(BIN) DISP(164)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                         WAITS FOR WRITE I/O UNDER ANOTHER THREAD  */
FLD: QWACARNS LEN(4) TYPE(BIN) DISP(168)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                         WAITS FOR SYNCHRONOUS EXECUTION UNIT
*                         SWITCHING for commit/abort.               */
FLD: QWACARLH LEN(4) TYPE(BIN) DISP(172)
                          /*Number of wait trace events processed for*/
*                         waits for latch contention                */
*/*********************************************************************
*  THE FOLLOWING VALUES THROUGH QWACARNH ARE CALCULATED IF
*    ACCOUNTING CLASS 3 IS STARTED.
**********************************************************************/
*
FLD: QWAC2    LEN(4) TYPE(BIN) DISP(176)
*
FLD: QWACARLG LEN(4) TYPE(BIN) DISP(176)
                              /*Number of wait trace events processed*/
*                        /* for waits for log write I/O             */
FLD: QWACAWLG TYPE(STCKTIME) DISP(180)
                              /*Accumulated wait time for a log write*/
*                        /* I/O.  For RRSAF threads, this value     */
*                        /* includes implicit commit time for RRS   */
*                        /* at EOT if uncommitted work exists.      */
*                        /* See QWACAWTE for explicit RRS           */
*                        /* commit time.                            */
FLD: QWACALBC LEN(4) TYPE(BIN) DISP(188)
                              /*Number of wait trace events processed*/
*                        /* for waits for TCP/IP LOB and XML        */
*                        /* materialization                         */
FLD: QWACALBW TYPE(STCKTIME) DISP(192)
                               /*Accumulated wait time for TCP/IP LOB*/
*                        /* and XML materialization                 */
FLD: QWACAWTP TYPE(STCKTIME) DISP(212)
                            /*Accumulated wait time due to page latch*/
*                        /* contention                              */
FLD: QWACARNH LEN(4) TYPE(BIN) DISP(220)
                              /*Number of wait trace events processed*/
*                        /* for page latch contention               */
*/*********************************************************************
*  THE FOLLOWING VALUES THROUGH QWACPKGN ARE DEPENDENT ON THE
*    ACTIVATION OF OPTIONAL ACCOUNTING CLASSES.
*    QWACCLS2 WILL BE ON ONLY IF ACCOUNTING CLASS 2 WAS ACTIVE DURING
*      THE LIFE OF THE AGENT WHEN A CLASS 2 EVENT OCCURRED.
*    QWACCLS3 WILL BE ON ONLY IF ACCOUNTING CLASS 3 WAS ACTIVE DURING
*      THE LIFE OF THE AGENT WHEN A CLASS 3 EVENT OCCURRED.
*    QWACPKGN WILL BE NON-ZERO ONLY IF ACCOUNTING CLASS 7 AND/OR 8
*      WERE ACTIVE WHEN THE AGENT BEGAN EXECUTION OF A PACKAGE
**********************************************************************/
*
FLD: QWAC3    LEN(4) TYPE(BIN) DISP(224)
*
FLD: QWACFLGS LEN(2) DISP(224)    /*FLAGS*/
*
*/********************************************************************/
*/*     BIT MEANINGS FOR QWACFLGS                                    */
*/********************************************************************/
COMP: QWACCLS2 = X'0001'          /*THERE IS NON ZERO ACCOUNTING*/
COMP: QWACCLS3 = X'0002'          /*THERE IS NON ZERO ACCOUNTING*/
COMP: QWACCL2O = X'0004'          /*Class 2 accounting data*/
COMP: QWACCL3O = X'0008'          /*Class 3 accounting data*/
COMP: QWACCL7O = X'0010'          /*Class 7 accounting data*/
COMP: QWACCL8O = X'0020'          /*Class 8 accounting data*/
COMP: QWACPARR = X'0040'          /*There is rollup data for*/
COMP: QWACBADE = X'0400'          /*An error was detected in the*/
FLD: QWACPKGN TYPE(HALF) DISP(226)/*NUMBER OF PACKAGES FOR*/
*                                       WHICH THE APPROPRIATE TRACES
*                                       WERE ACTIVE AND THEREFORE,
*                                       PACKAGE LEVEL ACCOUNTING
*                                       WAS PERFORMED.  THIS IS THE
*                                       NUMBER OF QPAC SECTIONS TO BE
*                                       WRITTEN FOR THIS AGENT IN IFCID
*                                       239 (10 PER RECORD).
*
*/*********************************************************************
*  The following values through QWACARNJ are calculated if
*    Accounting Class 3 is started and if DB2 is a member of a DB2
*    data sharing group.
**********************************************************************/
*
FLD: QWACA261 LEN(4) TYPE(BIN) DISP(228)
FLD: QWACAWTG TYPE(STCKTIME) DISP(228)
                            /*Accumulated wait time due to sending of*/
*                           messages to other DB2 members in the
*                           data sharing group.                     */
FLD: QWACAWTJ TYPE(STCKTIME) DISP(236)
                                /*Accumulated wait time due to global*/
*                           contention for parent L-locks.  Global
*                           contention occurs when inter-system
*                           communication is required to resolve an
*                           IRLM Lock or Change request.  QPACAWTL
*                           contains the wait time due to local
*                           contention.  Local contention does not
*                           require inter-system communciation - it
*                           can be resolved by the local subsystem. */
FLD: QWACARNG LEN(4) TYPE(BIN) DISP(244)
                              /*Number of wait trace events processed*/
*                           for sending of messages to other members
*                           in the data sharing group.              */
FLD: QWACARNJ LEN(4) TYPE(BIN) DISP(248)
                              /*Number of wait trace events processed*/
*                           for waits for global lock contention for
*                           parent L-locks.                         */
*/*********************************************************************
*  THE FOLLOWING VALUES ARE FOR STORED PROCEDURES.
*  QWACSPCP IS CALCULATED ONLY IF CLASS 1 IS ACTIVE.
*  QWACSPTT, QWACSPNE ARE CALCULATED ONLY IF CLASS 2 IS ACTIVE.
*  QWACCANM, QWACCAST ARE CALCULATED ONLY IF CLASS 3 IS ACTIVE.
**********************************************************************/
FLD: QWACB302 LEN(1)
FLD: QWACSPCP TYPE(STCKTIME) DISP(252)
                                  /*The accumlated CPU time used to*/
*                        /* satisfy stored procedure requests       */
*                        /* processed in a DB2 stored procedure/    */
*                        /* WLM address space.  SQLP times are      */
*                        /* included in this time IF the SQLP       */
*                        /* was called on a nested task and was     */
*                        /* not invoked by the main application     */
*                        /* execution unit. This time does not      */
*                        /* include CPU consumed on an IBM specialty*/
*                        /* engine.                                 */
FLD: QWACA302 LEN(1)
FLD: QWACSPTT TYPE(STCKTIME) DISP(260)
                                  /*The accumulated CPU time consumed*/
*                        /* in DB2 processing SQL statements        */
*                        /* issued by stored procedure(s) processed */
*                        /* in a DB2 stored procedure/WLM           */
*                        /* address space.  This time also          */
*                        /* includes in DB2 time needed to          */
*                        /* connect and disconnect the SP task for  */
*                        /* non-SQLP stored procedures.             */
*                        /* SQLP times are included in this time IF */
*                        /* the SQLP was called on a nested task and*/
*                        /* was not invoked by the main application */
*                        /* execution unit. This time is a subset   */
*                        /* of QWACSPCP and does not include CPU    */
*                        /* consumed on an IBM specialty engine.    */
FLD: QWACSPNE LEN(4) TYPE(BIN) DISP(268)
                                /*the number of SQL entry/exit events*/
*                        /* performed by stored procedures          */
FLD: QWACCAST TYPE(STCKTIME) DISP(272)
                               /*the total elapsed time spent waiting*/
*                        /* for an available TCB, before the        */
*                        /* stored procedure could be scheduled.    */
FLD: QWACCANM LEN(4) TYPE(BIN) DISP(280)
                                  /*the number of times an SQL CALL*/
*                        /* statement had to wait for an available  */
*                        /* TCB, before the stored procedure could  */
*                        /* be scheduled.                           */
*/*********************************************************************
*  THE FOLLOWING VALUES ARE FOR IFC ROLLUP RECORDS AND
*  UTILITY SUBTASKS.
*  QWACPCNT, QWACPACE ARE CALCULATED ONLY IF CLASS 1 IS ACTIVE.
**********************************************************************/
FLD: QWACA282 LEN(4) TYPE(BIN) DISP(284)
FLD: QWACPCNT LEN(4) TYPE(BIN) DISP(284)
                                  /*1. For a non rollup parent record*/
*                        /*    number of parallel child agents      */
*                        /*    created                              */
*                        /* 2. For a non-rollup child agent record =*/
*                        /*    0                                    */
*                        /* 3. For a parallel query rollup record = */
*                        /*    number of parellel child agents      */
*                        /*    rolled into the record               */
*                        /* 4. For a DDF/RRSAF rollup record =      */
*                        /*    number of accounting intervals rolled*/
*                        /*    into the record for the corresponding*/
*                        /*    end user.                            */
FLD: QWACPACE LEN(4) TYPE(BIN) DISP(288)
                                /*1. For a non rollup parent record 0*/
*                        /* 2. For a non-rollup child agent record =*/
*                        /*    QWHSACE of the parent record         */
*                        /* 3. For a parallel query rollup record = */
*                        /*    QWHSACE of the parent record         */
*                        /* 4. For a DDF/RRSAF rollup record = no   */
*                        /*    meaning                              */
FLD: QWACSUCV TYPE(FULL) DISP(292)
                            /*THIS FIELD CONTAINS THE SU CONV FACTOR.*/
*                        /* THIS VALUE IS USEFUL FOR ACCOUNTING     */
*                        /* MONITORS THAT ATTEMPT TO ROLL UP CPU    */
*                        /* EXECUTION TIMES ACROSS MULTIPLE DB2S    */
*                        /* RUNNING ON DIFFERENT MACHINES.  WITHOUT */
*                        /* THIS CONVERSION FACTOR, CPU TIMES       */
*                        /* CANNOT BE NORMALIZED AND SUMMED.        */
*                        /* This value reflects the conversion      */
*                        /* factor at the time the record was       */
*                        /* written.                                */
FLD: QWACWLME LEN(8) DISP(296)
                             /*The MVS Workload Manager Service Class*/
*                        /* Name if the thread is a DBAT and if the */
*                        /* MVS release and system definitions      */
*                        /* invoke this function. Otherwise binary  */
*                        /* zeroes.  For DDF/RRSAF rollup records,  */
*                        /* this value will be derived from the last*/
*                        /* thread to rollup data into the record.  */
*/*******************************************************************
*                        Log Values for task
*  amount of logging for a thread may exceed UR only related logging
*  because of system related actions needed by the thread.
********************************************************************/
FLD: QWACLRN  LEN(4) TYPE(BIN) DISP(304)        /*log records written*/
FLD: QWACLRAB LEN(6) DISP(310)    /*bytes logged*/
FLD: QWACLRA2 LEN(2) DISP(310)    /*Hi order 2 bytes*/
FLD: QWACLRA4 LEN(4) DISP(312)    /*Lo order 4 bytes*/
*/*********************************************************************
*  THE FOLLOWING VALUES ARE FOR USER DEFINED FUNCTIONS.
*  QWACUDCP AND QWACUDEA ARE CALCULATED ONLY IF CLASS 1 IS ACTIVE.
*  QWACUDTT, QWACUDNE, AND QWACUDEB ARE CALCULATED ONLY IF CLASS
*  2 IS ACTIVE.
*  QWACUDST IS CALCULATED ONLY IF CLASS 3 IS ACTIVE.
**********************************************************************/
FLD: QWACB303 LEN(1)
FLD: QWACUDCP TYPE(STCKTIME) DISP(316)
                                  /*The accumlated CPU time used to*/
*                        /* satisfy UDF requests                    */
*                        /* processed in a DB2 stored procedure/    */
*                        /* WLM address space. Non-inline UDF times */
*                        /* are included in this time IF the native */
*                        /* UDF was called on a nested task and was */
*                        /* not invoked by the main application     */
*                        /* execution unit. This time does not      */
*                        /* include CPU consumed on an IBM specialty*/
*                        /* engine.                                 */
FLD: QWACA303 LEN(1)
FLD: QWACUDTT TYPE(STCKTIME) DISP(324)
                                  /*The accumulated CPU time consumed*/
*                        /* in DB2 processing SQL statements        */
*                        /* issued by UDF(s) processed              */
*                        /* in a DB2 stored procedure/WLM           */
*                        /* address space.  This time also          */
*                        /* includes in DB2 time needed to          */
*                        /* connect and disconnect the udf task.    */
*                        /* Non-inline UDF times are included in    */
*                        /* this time IF the native UDF was called  */
*                        /* on a nested task and was not invoked by */
*                        /* the main application execution unit.    */
*                        /* This time is a subset of QWACUDCP and   */
*                        /* does not include CPU consumed on an IBM */
*                        /* specialty engine.                       */
FLD: QWACUDNE LEN(4) TYPE(BIN) DISP(332)
                                /*the number of SQL entry/exit events*/
*                        /* performed by user-defined functions     */
FLD: QWACUDST TYPE(STCKTIME) DISP(336)
                               /*the total elapsed time spent waiting*/
*                        /* for an available TCB, before the        */
*                        /* user-defined function could be scheduled*/
FLD: QWACUDEA TYPE(STCKTIME) DISP(344)
                                  /*The total elapsed time spent in*/
*                        /* UDF requests processed in a DB2 stored  */
*                        /* procedure/WLM address space.            */
*                        /* Non-inline UDF times are included in    */
*                        /* this time IF the native UDF was called  */
*                        /* on a nested task and was not invoked by */
*                        /* the main application execution unit.    */
*                        /* This time includes time executing SQL.  */
FLD: QWACUDEB TYPE(STCKTIME) DISP(352)
                             /*The total elapsed time spent executing*/
*                        /* SQL via UDF requests processed in a DB2 */
*                        /* stored procedure/WLM address space.     */
*                        /* This time includes time needed to       */
*                        /* connect and disconnect the UDF task.    */
*                        /* Non-inline UDF times are included in    */
*                        /* this time IF the native UDF was called  */
*                        /* on a nested task and was not invoked by */
*                        /* the main application execution unit.    */
*********************************************************************/
* The following values are for TRIGGERS.                            */
* QWACTRTT, QWACTRET, QWACTRTE, QWACTREE, and QWACPECD              */
* are calculated only if class 1 is active.                         */
*********************************************************************/
FLD: QWACB304 LEN(1)
FLD: QWACTRTT TYPE(STCKTIME) DISP(360)
                            /*The accumulated CPU time consumed while*/
*                        /* executing triggers on the main          */
*                        /* application execution unit.  This time  */
*                        /* does not include CPU consumed on an IBM */
*                        /* specialty engine.                       */
FLD: QWACTRET TYPE(STCKTIME) DISP(368)
                              /*The accumulated elapsed time expended*/
*                        /* executing triggers on the main          */
*                        /* application execution unit.             */
FLD: QWACSPEA TYPE(STCKTIME) DISP(392)
                             /*The total elapsed time spent in stored*/
*                        /* procedure requests                      */
*                        /* processed in a DB2 stored procedure/    */
*                        /* WLM address space.  SQLP times are      */
*                        /* included in this time IF the SQLP       */
*                        /* was called on a nested task and was     */
*                        /* not invoked by the main application     */
*                        /* execution unit.  This time includes time*/
*                        /* executing SQL.                          */
FLD: QWACSPEB TYPE(STCKTIME) DISP(400)
                             /*The total elapsed time spent executing*/
*                        /* SQL via stored procedure requests       */
*                        /* processed in a DB2 stored procedure/    */
*                        /* WLM address space.  SQLP times are      */
*                        /* included in this time IF the SQLP       */
*                        /* was called on a nested task and was     */
*                        /* not invoked by the main application     */
*                        /* execution unit.  This time includes time*/
*                        /* needed to connect and disconnect the SP */
*                        /* task for non-SQLP stored procedures.    */
FLD: QWACTRTE TYPE(STCKTIME) DISP(408)
                            /*The accumulated CPU time consumed while*/
*                        /* executing triggers on a nested task.    */
*                        /* This time does not include CPU consumed */
*                        /* on an IBM specialty engine.             */
FLD: QWACTREE TYPE(STCKTIME) DISP(416)
                              /*The accumulated elapsed time expended*/
*                        /* executing triggers on a nested task.    */
*********************************************************************/
* The following values are for External Savepoint requests          */
* QWACSVPT, QWACRLSV, and QWACRBSV                                  */
*********************************************************************/
FLD: QWACESVP LEN(1)
FLD: QWACSVPT LEN(4) TYPE(BIN) DISP(424)
                                  /*the number of savepoint requests*/
FLD: QWACRLSV LEN(4) TYPE(BIN) DISP(428)
                                /*the number of release svpt requests*/
FLD: QWACRBSV LEN(4) TYPE(BIN) DISP(432)
                            /*the number of rollback to svpt requests*/
*********************************************************************/
*  Additional counters for global wait times. These counters        */
*  break out values that were previously all contained in           */
*  QWACAWTJ and QWACARNJ.                                           */
*********************************************************************/
FLD: QWAC2AW  LEN(1)
FLD: QWACAWTK TYPE(STCKTIME) DISP(436)
                                /*Accumulated wait time due to global*/
*                               contention for child L-locks        */
FLD: QWACAWTM TYPE(STCKTIME) DISP(444)
                                /*Accumulated wait time due to global*/
*                               contention for other L-locks        */
FLD: QWACAWTN TYPE(STCKTIME) DISP(452)
                                /*Accumulated wait time due to global*/
*                           contention for pageset/partition P-locks*/
FLD: QWACAWTO TYPE(STCKTIME) DISP(460)
                                /*Accumulated wait time due to global*/
*                               contention for page P-locks         */
FLD: QWACAWTQ TYPE(STCKTIME) DISP(468)
                                /*Accumulated wait time due to global*/
*                               contention for other P-locks        */
FLD: QWACARNK LEN(4) TYPE(BIN) DISP(476)
                              /*Number of wait trace events processed*/
*                               for waits for global contention for
*                               child L-locks                       */
FLD: QWACARNM LEN(4) TYPE(BIN) DISP(480)
                              /*Number of wait trace events processed*/
*                               for waits for global contention for
*                               other L-locks                       */
FLD: QWACARNN LEN(4) TYPE(BIN) DISP(484)
                              /*Number of wait trace events processed*/
*                               for waits for global contention for
*                               pageset/partition P-locks           */
FLD: QWACARNO LEN(4) TYPE(BIN) DISP(488)
                              /*Number of wait trace events processed*/
*                               for waits for global contention for
*                               page P-locks                        */
FLD: QWACARNQ LEN(4) TYPE(BIN) DISP(492)
                              /*Number of wait trace events processed*/
*                               for waits for global contention for
*                               other P-locks                       */
FLD: QWACZIIP LEN(1)
FLD: QWACCLS1_ZIIP TYPE(STCKTIME) DISP(496)
                                /*Accumulated CPU time consumed while*/
*                         /* executing on an IBM specialty engine in*/
*                         /* all environments.  This value may be   */
*                         /* 0 when QWACRINV >= 20                  */
FLD: QWACCLS2_ZIIP TYPE(STCKTIME) DISP(504)
                                /*Accumulated CPU time consumed while*/
*                         /* executing in DB2 on an IBM specialty   */
*                         /* engine.                                */
FLD: QWACTRTT_ZIIP TYPE(STCKTIME) DISP(512)
                            /*Accumulated CPU time consumed executing*/
*                         /* triggers on the main application       */
*                         /* execution unit on an IBM specialty     */
*                         /* engine.                                */
FLD: QWACZIIP_ELIGIBLE LEN(8) DISP(520)                    /*NOT USED*/
FLD: QWACSPNF_ZIIP TYPE(STCKTIME) DISP(528)
                            /*Accumulated CPU time consumed executing*/
*                         /* stored procedure requests on the main  */
*                         /* application execution unit on an IBM   */
*                         /* specialty engine. Since these SPs run  */
*                         /* entirely within DB2, this time         */
*                         /* represents class 1 and class 2 time.   */
FLD: QWACUDFNF_ZIIP TYPE(STCKTIME) DISP(536)
                            /*Accumulated CPU time consumed executing*/
*                         /* user defined functions on the main     */
*                         /* application execution unit on an IBM   */
*                         /* specialty engine. Since these UDFs run */
*                         /* entirely within DB2, this time         */
*                         /* represents class 1 and class 2 time.   */
FLD: QWACNF   LEN(1)
FLD: QWACSPNF_ELAP TYPE(STCKTIME) DISP(544)
                                  /*Accumulated elapsed time consumed*/
*                         /* executing stored procedure requests on */
*                         /* the main application execution unit.   */
*                         /* Since these SPs run entirely           */
*                         /* within DB2, this time represents class */
*                         /* 1 and class 2 time.                    */
FLD: QWACSPNF_CP TYPE(STCKTIME) DISP(552)
                            /*Accumulated CPU time consumed executing*/
*                         /* stored procedure requests on the main  */
*                         /* application execution unit. This time  */
*                         /* does not include CPU consumed on an    */
*                         /* IBM specialty engine. Since these SPs  */
*                         /* run entirely within DB2, this time     */
*                         /* represents class 1 and class 2 time.   */
FLD: QWACUDFNF_ELAP TYPE(STCKTIME) DISP(560)
                                  /*Accumulated elapsed time consumed*/
*                         /* executing user defined functions on    */
*                         /* the main application execution unit.   */
*                         /* Since these UDFs run entirely          */
*                         /* within DB2, this time represents class */
*                         /* 1 and class 2 time.                    */
FLD: QWACUDFNF_CP TYPE(STCKTIME) DISP(568)
                            /*Accumulated CPU time consumed executing*/
*                         /* user defined functions on the main     */
*                         /* application execution unit. This time  */
*                         /* does not include CPU consumed on an    */
*                         /* IBM specialty engine. Since these      */
*                         /* UDFs run entirely within DB2, this     */
*                         /* time represents class 1 and class 2    */
*                         /* time.                                  */
FLD: QWACSE   LEN(1)
FLD: QWACSP_CLS1SE TYPE(STCKTIME) DISP(576)
                                  /*The accumlated CPU time used to*/
*                         /* satisfy stored procedure requests      */
*                         /* processed in a DB2 stored procedure/   */
*                         /* WLM address space while executing on   */
*                         /* an IBM specialty engine.  SQLP times   */
*                         /* are included in this time IF the SQLP  */
*                         /* was called on a nested task and was    */
*                         /* not invoked by the main application    */
*                         /* execution unit.                        */
FLD: QWACSP_CLS2SE TYPE(STCKTIME) DISP(584)
                                  /*The accumulated CPU time consumed*/
*                         /* in DB2 processing SQL statements       */
*                         /* issued by stored procedure(s) processed*/
*                         /* in a DB2 stored procedure/WLM          */
*                         /* address space while executing on an    */
*                         /* IBM specialty engine. SQLP times are   */
*                         /* included in this time IF the           */
*                         /* SQLP was called on a nested task and   */
*                         /* was not invoked by the main application*/
*                         /* execution unit. This time is a subset  */
*                         /* of QWACSP_CLS1se                       */
FLD: QWACUDF_CLS1SE TYPE(STCKTIME) DISP(592)
                                  /*The accumlated CPU time used to*/
*                         /* satisfy UDF requests                   */
*                         /* processed in a DB2 stored procedure/   */
*                         /* WLM address space while executing on   */
*                         /* an IBM specialty engine.               */
FLD: QWACUDF_CLS2SE TYPE(STCKTIME) DISP(600)
                                  /*The accumulated CPU time consumed*/
*                         /* in DB2 processing SQL statements       */
*                         /* issued by UDFs processed               */
*                         /* in a DB2 stored procedure/WLM          */
*                         /* address space while executing on an    */
*                         /* IBM specialty engine. This time is a   */
*                         /* subset of QWACUDF_CLS1se               */
FLD: QWACTRTE_SE TYPE(STCKTIME) DISP(608)
                               /*The accumulated CPU time consumed on*/
*                         /* an IBM specialty engine while          */
*                         /* executing triggers on a nested task.   */
FLD: QWACRU   LEN(1)
FLD: QWAC_PT_COUNT LEN(4) TYPE(BIN) DISP(628)
                                  /*1. For all non rollup records 0*/
*                         /* 2. For a parallel query rollup record =*/
*                         /*    number of parallel child agents     */
*                         /*    rolled into this record             */
*                         /* 3. For a DDF/RRSAF rollup record =     */
*                         /*    the number of parallel query child  */
*                         /*    agents rolled into this record.     */
*                         /*    These agents are NOT counted in     */
*                         /*    QWACPCNT.                           */
FLD: QWACFLGS2 TYPE(HALF) DISP(632)
COMP: QWAC_RU_PARQRY = X'8000'    /*This record contains parallel*/
COMP: QWAC_RU_AT = X'4000'        /*This record contains autonomous*/
FLD: QWAC_PROFMON LEN(1)          /*Thread profile monitoring info*/
FLD: QWAC_PROFMON_TYPE LEN(1) DISP(634)
                            /*Profile monitoring type (e excp,w warn)*/
FLD: QWAC_PROFMON_PID LEN(4) TYPE(BIN) DISP(636)
                                  /*Profile table row id value*/
FLD: QWAC_PQSYNC LEN(1)
FLD: QWAC_PQS_WAIT LEN(8) DISP(640)    /*Accumulated time waiting for*/
*                          /* parallel queries to synchronize       */ 
*                          /* between parent and child tasks        */ 
FLD: QWAC_PQS_COUNT LEN(4) TYPE(BIN) DISP(648)
                                  /*Number of times a parallel query*/
*                          /* processing had to suspend             */ 
*                          /* waiting for parent/child to           */ 
*                          /* synchronize                           */ 
*                                                                      
FLD: QWAC_ACCEL LEN(1)
FLD: QWAC_ACCEL_ELIG_ELA TYPE(STCKTIME) DISP(652)
                                 /*The accumulated elapsed time spent*/
*                         /* processing SQL in DB2 that may be       */
*                         /* eligible for execution on an accelerator*/
FLD: QWAC_ACCEL_ELIG_CP TYPE(STCKTIME) DISP(660)
                                  /*The accumulated CPU time spent*/
*                         /* processing SQL in DB2 that may be       */
*                         /* eligible for execution on an accelerator*/
*                         /* this value does not include time spent  */
*                         /* processing on an IBM specialty engine   */
FLD: QWAC_ACCEL_ELIG_SE TYPE(STCKTIME) DISP(668)
                               /*The accumulated CPU time consumed on*/
*                         /* on an IBM specialty engine processing   */
*                         /* SQL in DB2 that may be eligible for     */
*                         /* execution on an accelerator             */
FLD: QWACEND  LEN(1) DISP(680)
*                                                                      

*/********************************************************************/
*/*THE FOLLOWING VALUES DESCRIBE WHY ACCOUNTING WAS INVOKED- QWACRINV*/
*/********************************************************************/
*/*         DCR-DJ012 ADDED ACC,STG,STL,IN2 *jbt 8/02                */
COMP: QWACRACC = X'00000001'  /*ACCUMULATING DATA BY END USER FOR DDF*/
COMP: QWACRSTG = X'00000002'  /*ACCUMULATING DATA BY END USER FOR DDF*/
COMP: QWACRSTL = X'00000003'  /*ACCUMULATING DATA BY END USER FOR DDF*/
COMP: QWACRIFI = X'00000004'     /*IFI READS REQUEST FOR IFCID 147 OR*/
COMP: QWACRSUS = X'00000006'   /*SAME USER RESIGN ON WITH SAME AUTHID*/
COMP: QWACRNUS = X'00000008'      /*NEW USER THE AUTHORIZATION ID*/
COMP: QWACRINA = X'0000000A'      /*DDF THREAD IS BECOMING INACTIVE*/
COMP: QWACRIN2 = X'0000000B'  /*DDF TYPE 2 INACT IS BECOMING INACTIVE*/
COMP: QWACRDEA = X'0000000C'      /*DEALLOCATION NORMAL PROGRAM*/
COMP: QWACRAAC = X'0000000E'      /*COMMIT RRSAF THREAD SPECIFIED*/
COMP: QWACEOTN = X'00000010'      /*END OF TASK APPLICATION PROGRAM*/
COMP: QWACEOTA = X'00000014'      /*END OF TASK APPLICATION PROGRAM*/
COMP: QWACEOMA = X'00000018'     /*END OF MEMORY ABNORMAL TERMINATION*/
COMP: QWACRESI = X'0000001C'      /*RESOLVE INDOUBT ABNORMAL*/
COMP: QWACCANF = X'00000020'      /*CANCEL FORCE STOP FORCE COMMAND*/
COMP: QWACETIN = X'00000028'      /*END OF TASK APPLICATION PROGRAM*/
COMP: QWACETIA = X'0000002C'      /*END OF TASK APPLICATION PROGRAM*/
COMP: QWACEMIA = X'00000030'     /*END OF MEMORY ABNORMAL TERMINATION*/
COMP: QWACCNFI = X'00000038'      /*CANCEL FORCE STOP FORCE COMMAND*/
***********************************************************************
**** DSNDQXST DSECT         TABLE OF SQL STMT COUNTERS                  
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF DSNDQXST, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01R2N > 0)
*           NORMALIZE(QXST, QWA01R2N)
***********************************************************************
COMP: QXST_OFFSET =
            WHEN(SMF101_IFCID3 AND QWA01R2N > 0) ASSIGN(QWA01R2O)
            ELSE                                 ASSIGN(99999)
FLD: DSNDQXST DISP(0) LEN(460) OFFSET(QXST_OFFSET)
                                  /*TABLE OF SQL STMT COUNTERS*/
FLD: QXST     LEN(8) DISP(0)      /*RDS ACCOUNTING AREA*/
FLD: QXHEAD   LEN(4) TYPE(BIN) DISP(0)         /*CONTROL BLOCK HEADER*/
FLD: QXID     TYPE(HALF) DISP(0)  /*CONTROL BLOCK ID*/
FLD: QXLEN    TYPE(HALF) DISP(2)  /*CONTROL BLOCK LENGTH*/
FLD: QXEYE    LEN(4) DISP(4)      /*CONTROL BLOCK EYE CATCHER*/
FLD: STMT     LEN(8) DISP(8)      /*OVERLAY ON QXSTATS*/
FLD: QXSTATS  LEN(8) DISP(8)      /*ACCOUNTING STATISTICS*/
FLD: QXSELECT LEN(8) TYPE(BIN) DISP(8)                 /*# OF SELECTS*/
FLD: QXINSRT  LEN(8) TYPE(BIN) DISP(16)                /*# OF INSERTS*/
FLD: QXUPDTE  LEN(8) TYPE(BIN) DISP(24)                /*# OF UPDATES*/
FLD: QXDELET  LEN(8) TYPE(BIN) DISP(32)                /*# OF DELETES*/
FLD: QXDESC   LEN(8) TYPE(BIN) DISP(40)              /*# OF DESCRIBES*/
FLD: QXPREP   LEN(8) TYPE(BIN) DISP(48)               /*# OF PREPARES*/
FLD: QXOPEN   LEN(8) TYPE(BIN) DISP(56)                  /*# OF OPENS*/
FLD: QXCLOSE  LEN(8) TYPE(BIN) DISP(64)                 /*# OF CLOSES*/
FLD: QXCRTAB  LEN(8) TYPE(BIN) DISP(72)           /*# OF CREATE TABLE*/
FLD: QXCRINX  LEN(8) TYPE(BIN) DISP(80)           /*# OF CREATE INDEX*/
FLD: QXCTABS  LEN(8) TYPE(BIN) DISP(88)      /*# OF CREATE TABLESPACE*/
FLD: QXCRSYN  LEN(8) TYPE(BIN) DISP(96)         /*# OF CREATE SYNONYM*/
FLD: QXCRDAB  LEN(8) TYPE(BIN) DISP(104)       /*# OF CREATE DATABASE*/
FLD: QXCRSTG  LEN(8) TYPE(BIN) DISP(112)  /*# OF CREATE STORAGE GROUP*/
FLD: QXDEFVU  LEN(8) TYPE(BIN) DISP(120)           /*# OF CREATE VIEW*/
FLD: QXDRPIX  LEN(8) TYPE(BIN) DISP(128)            /*# OF DROP INDEX*/
FLD: QXDRPTA  LEN(8) TYPE(BIN) DISP(136)            /*# OF DROP TABLE*/
FLD: QXDRPTS  LEN(8) TYPE(BIN) DISP(144)       /*# OF DROP TABLESPACE*/
FLD: QXDRPDB  LEN(8) TYPE(BIN) DISP(152)         /*# OF DROP DATABASE*/
FLD: QXDRPSY  LEN(8) TYPE(BIN) DISP(160)          /*# OF DROP SYNONYM*/
FLD: QXDRPST  LEN(8) TYPE(BIN) DISP(168)    /*# OF DROP STORAGE GROUP*/
FLD: QXDRPVU  LEN(8) TYPE(BIN) DISP(176)             /*# OF DROP VIEW*/
FLD: QXALTST  LEN(8) TYPE(BIN) DISP(184)   /*# OF ALTER STORAGE GROUP*/
FLD: QXFETCH  LEN(8) TYPE(BIN) DISP(192)                /*# OF FETCHS*/
FLD: QXALTTS  LEN(8) TYPE(BIN) DISP(200)      /*# OF ALTER TABLESPACE*/
FLD: QXALTTA  LEN(8) TYPE(BIN) DISP(208)           /*# OF ALTER TABLE*/
FLD: QXALTIX  LEN(8) TYPE(BIN) DISP(216)           /*# OF ALTER INDEX*/
FLD: QXCMTON  LEN(8) TYPE(BIN) DISP(224)            /*# OF COMMENT ON*/
FLD: QXLOCK   LEN(8) TYPE(BIN) DISP(232)            /*# OF LOCK TABLE*/
FLD: QXGRANT  LEN(8) TYPE(BIN) DISP(240)                 /*# OF GRANT*/
FLD: QXREVOK  LEN(8) TYPE(BIN) DISP(248)                /*# OF REVOKE*/
FLD: QXINCRB  LEN(8) TYPE(BIN) DISP(256)
                          /*# OF INCREMENTAL BINDS EXCLUDING PREPARES*/
FLD: QXLABON  LEN(8) TYPE(BIN) DISP(264)              /*# OF LABEL ON*/
FLD: QXSETSQL LEN(8) TYPE(BIN) DISP(272)   /*# OF Set Current SQLID 1*/
FLD: QXCRALS  LEN(8) TYPE(BIN) DISP(280)        /*# OF CREATE ALIAS 2*/
FLD: QXDRPAL  LEN(8) TYPE(BIN) DISP(288)          /*# OF DROP ALIAS 2*/
FLD: QXMIAP   LEN(8) TYPE(BIN) DISP(296)
                        /*# of times RID list processing used. This 9*/
*                           field is incremented once for a given     9
*                           table access for Index Access with list   9
*                           prefetch and for Multiple Index Access.   9
FLD: QXNSMIAP LEN(8) TYPE(BIN) DISP(304)
                           /*# of times a RID list was not used for 9*/
*                           a given RID list process involving one    9
*                           index (Index Access with list prefetch)   9
*                           or involving multiple indexes (Multiple   9
*                           Index Access) because no storage was      9
*                           available to hold the list of RIDs.       9
FLD: QXMRMIAP LEN(8) TYPE(BIN) DISP(312)
                        /*# of times one or more RID lists were not 9*/
*                           used for a given RID list process involving
*                           one indx (Index Access with list prefetch)9
*                           or involving multiple indexes (Multiple   9
*                           Index Access) because the number of RIDs  9
*                           exceeded one or more internal limits.     9
FLD: QXSETHV  LEN(8) TYPE(BIN) DISP(320)
                            /*# OF Set Host Variable statements, we 6*/
*                           don't trace the contents of the special   6
*                           register.                                 6
FLD: QXALDAB  LEN(8) TYPE(BIN) DISP(328)      /*# OF ALTER DATABASE 7*/
FLD: QXDRPPKG LEN(8) TYPE(BIN) DISP(336)
                                  /*# OF DROP PACKAGE STATEMENTS 8*/
FLD: QXDSCRTB LEN(8) TYPE(BIN) DISP(344)
                                  /*# OF DESCRIBE TABLE STATEMENTS 8*/
FLD: QXMAXDEG LEN(8) DISP(352)
                          /*Maximum degree of parallelism among the A*/
*                           parallel groups to indicate the extent to A
*                           which query parallelism applies.          A
FLD: QXTOTGRP LEN(8) TYPE(BIN) DISP(360)
                         /*Total number of parallel groups executed A*/
FLD: QXDEGCUR LEN(8) DISP(368)
                            /*Total number pf parallel groups which A*/
*                           fell back to sequential mode because the  A
*                           cursor may be used in UPDATE/DELETE.      A
FLD: QXDEGESA LEN(8) TYPE(BIN) DISP(376)
                        /*Total number of parallel groups which fellA*/
*                           back to sequential mode due to lack of    A
*                           ESA sort support.                         A
FLD: QXDEGBUF LEN(8) TYPE(BIN) DISP(384)
                        /*Total number of parallel groups that have C*/
*                           a planned degree greater than one at run  C
*                           time, but fell back to sequential mode    C
*                           because of storage shortage or contention C
*                           on the buffer pool.                       C
FLD: QXREDGRP LEN(8) TYPE(BIN) DISP(392)
                        /*Total number of parallel groups that have C*/
*                           a planned degree greater than one at run  C
*                           time, but were processed to a parallel    C
*                           degree less than planned because of a     C
*                           storage shortage or contention on the     C
*                           buffer pool.                              C
FLD: QXNORGRP LEN(8) TYPE(BIN) DISP(400)
                        /*Total number of parallel groups that have C*/
*                           a planned degree greater than one at run  C
*                           time, and were executed to the same degreeC
*                           because of sufficient storage on the      C
*                           buffer pool.                              C
FLD: QXCON1   LEN(8) TYPE(BIN) DISP(408)
                          /*# of CONNECT type 1 statements executed B*/
FLD: QXCON2   LEN(8) TYPE(BIN) DISP(416)
                          /*# of CONNECT type 2 statements executed B*/
FLD: QXREL    LEN(8) TYPE(BIN) DISP(424)
                                 /*# of RELEASE statements executed B*/
FLD: QXSETCON LEN(8) TYPE(BIN) DISP(432)
                          /*# of SET CONNECTION statements executed B*/
FLD: QXSETCDG LEN(8) TYPE(BIN) DISP(440)
                               /*# of SET CURRENT DEGREE statements A*/
*                           executed
FLD: QXSETCRL LEN(8) TYPE(BIN) DISP(448)
                                /*# of SET CURRENT RULES statements D*/
FLD: QXCALL   LEN(8) TYPE(BIN) DISP(456)
                                /*# of SQL CALL statements executed F*/
FLD: QXCALLAB LEN(8) TYPE(BIN) DISP(464)
                            /*# of times a stored procedure ABENDed F*/
FLD: QXCALLTO LEN(8) TYPE(BIN) DISP(472)
                           /*# of times an SQL CALL statement timed F*/
*                             out waiting to be scheduled             F
FLD: QXCALLRJ LEN(8) TYPE(BIN) DISP(480)
                             /*# of times an SQL CALL statement was F*/
*                             rejected                                F
FLD: QXRLFDPA LEN(1) DISP(488)
                              /*If non zero, then Query Parallelism J*/
*                           is disabled by the RLF for at least one   I
*                           dynamic SELECT statement in this thread.  I
*                           See IFCID 0022 from a PREPARE statement   I
*                           for detailed information at the statement I
*                           level.  This field is for accounting      I
*                           IFCID 0003 and does not apply to IFCID    I
*                           0002.                                     I
FLD: QXCOORNO LEN(8) TYPE(BIN) DISP(496)
                         /*Total number of parallel groups executed K*/
*                           on a single DB2 due to the COORDINATOR    K
*                           subsystem parameter being set to NO.      K
*                           When the statement was bound, the         K
*                           COORDINATOR subsystem parameter was       K
*                           set to YES.  This situation can also      K
*                           occur when a plan or package is bound on  K
*                           one DB2 where COORDINATOR=YES but is run  K
*                           on a DB2 where COORDINATOR=NO.            K
FLD: QXISORR  LEN(8) TYPE(BIN) DISP(504)
                         /*Total number of parallel groups executed K*/
*                           on a single DB2 due to repeatable-read    K
*                           or read-stability isolation.              K
FLD: QXCRGTT  LEN(8) TYPE(BIN) DISP(512)
                               /*# OF CREATE GLOBAL TEMPORARY TABLE M*/
FLD: QXSTREOP LEN(8) TYPE(BIN) DISP(520)
                             /*Total number of times reoptimization N*/
*                           occurs.  This field does not apply to     N
*                           IFCID 0002.                               N
FLD: QXXCBPNX LEN(8) TYPE(BIN) DISP(528)
                        /*Total number of parallel groups that were O*/
*                           intended to run across the data sharing   O
*                           group.  This count is only incremented on O
*                           the parallelism coordinator at run time.  O
FLD: QXXCSKIP LEN(8) TYPE(BIN) DISP(536)
                         /*The number of times that the parallelism O*/
*                           coordinator had to bypass a DB2 when      O
*                           distributing tasks because there was not  O
*                           enough buffer pool storage on one or more O
*                           DB2 members.  This field is incremented   O
*                           only on the parallelism coordinator, and  O
*                           it is only incremented once per parallel  O
*                           group, even though it is possible that    O
*                           more than one DB2 had a buffer pool       O
*                           shortage for that parallel group.         O
*                           The purpose of this count is to indicate  O
*                           when there are not enough buffers on a    O
*                           member.  Therefore, this count is         O
*                           incremented only when the buffer pool is  O
*                           defined to allow parallelism.  For        O
*                           example, if VPXPSEQT = 0 on an assistant, O
*                           DB2 does not send parallel work there, butO
*                           this count is not incremented.            O
FLD: QXALOCL  LEN(8) TYPE(BIN) DISP(544)
                           /*Number of ASSOCIATE LOCATOR statements P*/
*                           executed                                  P
FLD: QXALOCC  LEN(8) TYPE(BIN) DISP(552)
                             /*Number of ALLOCATE CURSOR statements P*/
*                           statements executed                       P
FLD: QXSTFND  LEN(8) TYPE(BIN) DISP(560)
                            /*The number of times a PREPARE request P*/
*                           was satisfied by making a copy from the   P
*                           prepared statement cache                  P
FLD: QXSTNFND LEN(8) TYPE(BIN) DISP(568)
                            /*The number of times a PREPARE request P*/
*                           was received but a matching statement was P
*                           not found in the prepared statement       P
*                           cache.  Cache search is only done for     P
*                           DML SQL and only if cache option is activeP
FLD: QXSTIPRP LEN(8) TYPE(BIN) DISP(576)
                             /*The number of times that an implicit P*/
*                           prepare was performed because the         P
*                           KEEPDYNAMIC(YES) option was used and an   P
*                           OPEN, EXECUTE or DESCRIBE of a dynamic    P
*                           statement occurred after a COMMIT but     P
*                           DB2 no longer had a valid copy of the     P
*                           executable version of the prepared        P
*                           statement                                 P
FLD: QXSTNPRP LEN(8) TYPE(BIN) DISP(584)
                           /*The number of times that a prepare was P*/
*                           avoided because KEEPDYNAMIC(YES) was      P
*                           used along with prepared statement        P
*                           caching and DB2 still had the application P
*                           process' copy of the executable version   P
*                           of the prepared statement                 P
FLD: QXSTDEXP LEN(8) TYPE(BIN) DISP(592)
                          /*The number of times that an application P*/
*                           process' executable copy of a prepared    P
*                           statement was discarded due to the        P
*                           MAXKEEPD system limit being exceeded      P
FLD: QXSTDINV LEN(8) TYPE(BIN) DISP(600)
                              /*The number of times that a prepared P*/
*                           statement was purged from the cache       P
*                           because a DROP, ALTER, or REVOKE          P
*                           statement was issued on a dependent       P
*                           object.                                   P
FLD: QXRNTAB  LEN(8) TYPE(BIN) DISP(608)        /*# OF RENAME TABLE Q*/
FLD: QXCTRIG  LEN(8) TYPE(BIN) DISP(616)      /*# OF CREATE TRIGGER R*/
FLD: QXDRPTR  LEN(8) TYPE(BIN) DISP(624)        /*# OF DROP TRIGGER R*/
FLD: QXSETPTH LEN(8) TYPE(BIN) DISP(632)
                                 /*# OF SET CURRENT PATH statements S*/
FLD: QXDRPFN  LEN(8) TYPE(BIN) DISP(640)
                                  /*# OF DROP USER DEFINED FUNCTION T*/
FLD: QXDRPPR  LEN(8) TYPE(BIN) DISP(648)      /*# OF DROP PROCEDURE T*/
FLD: QXCDIST  LEN(8) TYPE(BIN) DISP(656)
                             /*# OF CREATE DISTINCT TYPE statements U*/
FLD: QXDDIST  LEN(8) TYPE(BIN) DISP(664)
                               /*# OF DROP DISTINCT TYPE statements U*/
FLD: QXCRUDF  LEN(8) TYPE(BIN) DISP(672)
                                  /*# OF CREATE FUNCTION statements V*/
FLD: QXCRPRO  LEN(8) TYPE(BIN) DISP(680)
                                 /*# OF CREATE PROCEDURE statements c*/
FLD: QXHOLDL  LEN(8) TYPE(BIN) DISP(688)
                                  /*# OF HOLD LOCATOR statements W*/
FLD: QXFREEL  LEN(8) TYPE(BIN) DISP(696)
                                  /*# OF FREE LOCATOR statements W*/
FLD: QXREPOP1 LEN(8) TYPE(BIN) DISP(704)
                        /*Total number of parallel groups for which X*/
*                           DB2 reformulated the parallel portion of  X
*                           the access path because the sysplex       X
*                           configuration was different from the      X
*                           sysplex configuration at bind time.       X
*                           This counter is only incremented by the   X
*                           parallelism coordinator at run time.      X
FLD: QXREPOP2 LEN(8) TYPE(BIN) DISP(712)
                        /*Total number of parallel groups for which X*/
*                           DB2 reformulated the paralllel portion of X
*                           the access path because there was not     X
*                           enough buffer pool resource.              X
*                           This counter is only incremented by the   X
*                           parallelism coordinator at run time.      X
FLD: QXCRATB  LEN(8) TYPE(BIN) DISP(720)
                                 /*# OF CREATE AUX TABLE statements c*/
FLD: QXSTLOBV LEN(8) DISP(728)    /*Max storage used for LOB values Y*/
*                           In KB for accounting, in MB for statisticsY
FLD: QXALUDF  LEN(8) TYPE(BIN) DISP(736)
                                  /*# OF ALTER FUNCTION statements Z*/
FLD: QXALPRO  LEN(8) TYPE(BIN) DISP(744)
                                  /*# OF ALTER PROCEDURE statements Z*/
FLD: QXROIMAT LEN(8) TYPE(BIN) DISP(752)
                            /*# of times that direct row access was a*/
*                           successful
FLD: QXROIIDX LEN(8) TYPE(BIN) DISP(760)
                          /*# of times an attempt to use direct row a*/
*                           access reverted to using an index to      a
*                           locate a record
FLD: QXROITS  LEN(8) TYPE(BIN) DISP(768)
                          /*# of times an attempt to use direct row a*/
*                           access reverted to using a table space    a
*                           scan to locate a record
FLD: QXSTTRG  LEN(8) TYPE(BIN) DISP(776)
                               /*# of times a statement trigger was b*/
*                           activated                                 b
FLD: QXROWTRG LEN(8) TYPE(BIN) DISP(784)
                           /*# of times a row trigger was activated b*/
FLD: QXTRGERR LEN(8) TYPE(BIN) DISP(792)
                          /*# of times an SQL error occurred during b*/
*                           execution of a triggered action           b
FLD: QXCASCDP LEN(8) DISP(800)    /*The maximum level of nested SQL b*/
*                           cascading.  This includes cascading       b
*                           due to triggers, UDFs and stored          b
*                           procedures.                               b
FLD: QXCAUD   LEN(8) TYPE(BIN) DISP(808)
                             /*# of user defined functions executed d*/
FLD: QXCAUDAB LEN(8) TYPE(BIN) DISP(816) /*# of times a UDF ABENDed d*/
FLD: QXCAUDTO LEN(8) TYPE(BIN) DISP(824)
                            /*# of times a UDF timed out waiting to d*/
*                             be scheduled                            d
FLD: QXCAUDRJ LEN(8) TYPE(BIN) DISP(832)
                                  /*# of times a UDF was rejected d*/
FLD: QXSETCPR LEN(8) DISP(840) /*# SET CURRENT PRECISION statements e*/
*                             executed                                e
FLD: QXDCLGTT LEN(8) TYPE(BIN) DISP(848)
                        /*# of DECLARE GLOBAL TEMPORARY TABLE stmts f*/
FLD: QXDEGDTT LEN(8) TYPE(BIN) DISP(856)
                         /*Total number of parallel groups that are f*/
*                           part of a query block using a UDF and     f
*                           executed on a single DB2 due to           f
*                           the existence of a Declared Temporary     f
*                           Table in the application process. Neither f
*                           the query block nor the parallel group    f
*                           references a Declared Temporary Table, andf
*                           a parallel group may or may not use a UDF.f
FLD: QXCRESEQ LEN(8) TYPE(BIN) DISP(864)      /*# OF CREATE SEQUENCES*/
FLD: QXALTSEQ LEN(8) TYPE(BIN) DISP(872)       /*# OF ALTER SEQUENCES*/
FLD: QXDROSEQ LEN(8) TYPE(BIN) DISP(880)        /*# OF DROP SEQUENCES*/
FLD: QXPRRESI LEN(8) TYPE(BIN) DISP(888)
                                /*# of PREPAREs for which use of an i*/
*                           index/indexes were restricted because the i
*                           index was in a pending state.             i
FLD: QXALTVW  LEN(8) TYPE(BIN) DISP(896)          /*# of ALTER VIEW j*/
FLD: QXALTJR  LEN(8) TYPE(BIN) DISP(904)           /*# OF ALTER JAR k*/
FLD: QXMERGE  LEN(8) TYPE(BIN) DISP(912)
                          /*# OF times MERGE statement was executed m*/
FLD: QXTRTBL  LEN(8) TYPE(BIN) DISP(920)
                           /*# of times TRUNCATE TABLE was executed n*/
FLD: QXCRROL  LEN(8) TYPE(BIN) DISP(928)         /*# OF CREATE ROLE o*/
FLD: QXDRPROL LEN(8) TYPE(BIN) DISP(936)           /*# OF DROP ROLE o*/
FLD: QXCRCTX  LEN(8) TYPE(BIN) DISP(944)
                                  /*# OF CREATE TRUSTED CONTEXT o*/
FLD: QXALTCTX LEN(8) TYPE(BIN) DISP(952)
                                  /*# OF ALTER TRUSTED CONTEXT o*/
FLD: QXDRPCTX LEN(8) TYPE(BIN) DISP(960)
                                  /*# OF DROP TRUSTED CONTEXT o*/
FLD: QXRNIX   LEN(8) TYPE(BIN) DISP(968)        /*# OF RENAME INDEX u*/
FLD: QXSTXMLV LEN(8) DISP(976)  /*# Max storage used for XML values q*/
FLD: QXRWSFETCHD LEN(8) TYPE(BIN) DISP(984)
                                  /*# Number of Rows Fetched r*/
FLD: QXRWSINSRTD LEN(8) TYPE(BIN) DISP(992)
                                  /*# Number of Rows Inserted r*/
FLD: QXRWSUPDTD LEN(8) TYPE(BIN) DISP(1000)
                                  /*# Number of Rows Updated r*/
FLD: QXRWSDELETD LEN(8) TYPE(BIN) DISP(1008)
                                  /*# Number of Rows Deleted r*/
FLD: QXSTCWLP LEN(8) TYPE(BIN) DISP(1016)
                         /*# of times DB2 parsed dynamic statements t*/
*                           because CONCENTRATE STATEMENTS WITH       t
*                           LITERALS behavior was in effect for       t
*                           the prepare of the statement for          t
*                           the dynamic statement cache               t
FLD: QXSTCWLR LEN(8) TYPE(BIN) DISP(1024)
                             /*# of times DB2 replaced at least one t*/
*                           literal in a dynamic statement because    t
*                           CONCENTRATE STATEMENTS WITH LITERALS      t
*                           was in effect for the prepare of          t
*                           the statement for dynamic statement cache t
FLD: QXSTCWLM LEN(8) TYPE(BIN) DISP(1032)
                         /*# of times DB2 found a matching reusable t*/
*                           copy of a dynamic statement in statement  t
*                           cache during prepare of a statement that  t
*                           had literals replaced because of          t
*                           CONCENTRATE STATEMENTS WITH LITERALS      t
FLD: QXSTCWLD LEN(8) TYPE(BIN) DISP(1040)
                          /*# of times DB2 created a duplicate stmt t*/
*                           instance in the the statement cache for   t
*                           a dynamic statement that had literals     t
*                           replaced by CONCENTRATE STATEMENTS WITH   t
*                           LITERALS behavior and the duplicate stmt  t
*                           instance was needed because a cache       t
*                           match failed solely due to literal        t
*                           reusability criteria                      t
FLD: QXPFSLNUM LEN(8) DISP(1048)  /*(S) v*/
FLD: QXPFSENUM LEN(8) DISP(1056)  /*(S) v*/
FLD: QXPFSENUMG LEN(8) DISP(1064) /*(S) v*/
FLD: QXPFMAXU LEN(8) DISP(1072)   /*(S) v*/
FLD: QXPFMAXUG LEN(8) DISP(1080)  /*(S) v*/
FLD: QXWFRIDS LEN(8) TYPE(BIN) DISP(1088)
                         /*# of times a RID list was overflown to a w*/
*                           work file because no RIDPOOL storage was  w
*                           available to hold the list of RIDs.       w
FLD: QXWFRIDT LEN(8) TYPE(BIN) DISP(1096)
                         /*# of times a RID list was overflown to a w*/
*                           work file because the number of RIDs      w
*                           exceeded one or more internal limits.     w
FLD: QXHJINCS LEN(8) TYPE(BIN) DISP(1104)
                        /*# of times a RID list append for a Hybrid w*/
*                           Join was interrupted because no RIDPOOL   w
*                           storage was available to hold the list of w
*                           RIDs (i.e. number of times DB2            w
*                           interrupted the RID phase and switched to w
*                           the Data phase).                          w
FLD: QXHJINCT LEN(8) TYPE(BIN) DISP(1112)
                        /*# of times a RID list append for a Hybrid w*/
*                           Join was interrupted because the number   w
*                           of RIDs exceeded one or more internal     w
*                           limits (i.e. number of times DB2          w
*                           interrupted the RID phase and switched to w
*                           the Data phase).                          w
FLD: QXRSMIAP LEN(8) TYPE(BIN) DISP(1120)
                              /*# of times a RID list retrieval for w*/
*                           multiple index access was skipped because w
*                           it was not necessary due to DB2 being     w
*                           able to predetermine the outcome of index w
*                           ANDing or ORing.                          w
FLD: QXCREMP  LEN(8) TYPE(BIN) DISP(1128)
                                  /*# OF CREATE MASK OR PERMISSION x*/
FLD: QXDRPMP  LEN(8) TYPE(BIN) DISP(1136)
                                  /*# OF DROP MASK OR PERMISSION x*/
FLD: QXALTMP  LEN(8) TYPE(BIN) DISP(1144)
                                  /*# OF ALTER MASK OR PERMISSION x*/
FLD: QXSTEND  LEN(8) DISP(1152)   /*END OF RDS ACCOUNTING AREA*/
***********************************************************************
**** DSNDQBAC DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF DSNDQBAC, USE:
*    INPUT: SMF101
*           NORMWHEN((SMF101_IFCID3 OR SMF101_IFCID239) AND QWA01R3N > 0)
*           NORMALIZE(QBAC, QWA01R3N)
***********************************************************************
COMP: QBAC_OFFSET =
  /* QWA01R3O AND QWA11R3O ARE IN SAME LOCATION */
           WHEN((SMF101_IFCID3 OR SMF101_IFCID239) AND QWA01R3N > 0)
                                                   ASSIGN(QWA01R3O)
           ELSE                                    ASSIGN(99999)
FLD: DSNDQBAC DISP(0) LEN(64) OFFSET(QBAC_OFFSET)
FLD: QBAC     LEN(8) DISP(0)
FLD: QBACPID  LEN(4) TYPE(BIN) DISP(0)               /*BUFFER POOL ID*/
FLD: QBACGET  LEN(4) TYPE(BIN) DISP(4)
                                /*# OF GET PAGE REQUESTS ISSUED. THIS*/
*                             INCLUDES CONDITIONAL AND NON-CONDITIONAL,
*                             SUCCESSFUL AND UNSUCCESSFUL REQUESTS.
FLD: QBACSWS  LEN(4) TYPE(BIN) DISP(8)
                                  /*# OF SETW ISSUED FOR SYSTEM PAGES*/
FLD: QBACRIO  LEN(4) TYPE(BIN) DISP(16)   /*# OF SYNCHRONOUS READ I/O*/
FLD: QBACSEQ  LEN(4) TYPE(BIN) DISP(20) /*# OF SEQ PREFETCH REQUESTED*/
FLD: QBACIMW  LEN(4) TYPE(BIN) DISP(24)
                             /*# OF IMMEDIATE (SYNCHRONOUS) WRITE I/O*/
FLD: QBACLPF  LEN(4) TYPE(BIN) DISP(28)
                                  /*# OF LIST PREFETCH REQUESTED*/
FLD: QBACDPF  LEN(4) TYPE(BIN) DISP(32)
                                  /*# OF DYNAMIC PREFETCH REQUESTED*/
FLD: QBACNGT  LEN(4) TYPE(BIN) DISP(52)
                              /*# OF UNSUCCESSFUL GET PAGE OPERATIONS*/
*                           DUE TO CONDITIONAL GET PAGE REQUESTS
FLD: QBACSIO  LEN(4) TYPE(BIN) DISP(56)
                           /*# OF ASYNCHRONOUS PAGES READ BY PREFETCH*/
*                           UNDER THE CONTROL OF THE AGENT
FLD: QBACEND  LEN(4) TYPE(BIN) DISP(64)
***********************************************************************
**** QLAC     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QLAC, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01R5N > 0)
*           NORMALIZE(QLAC, QWA01R5N)
***********************************************************************
COMP: QLAC_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01R5N > 0) ASSIGN(QWA01R5O+2)
           ELSE                                 ASSIGN(99999)
FLD: QLAC     DISP(0) LEN(200) OFFSET(QLAC_OFFSET)
FLD: QLACLOCN_OFF TYPE(HALF) DISP(0)            /*OFFSET FROM QLAC TO*/
*                              LOCATION NAME OF THE 'REMOTE'
*                              SITE WITH WHICH THE
*                              INFORMATION IS ASSOCIATED
*                              IF QLACLOCN TRUNCATED.
FLD: QLACFLGS LEN(1) DISP(2)      /*FLAG BYTE*/
COMP: QLACFLG0 = X'80'            /*(S)*/
COMP: QLACFLG1 = X'40'            /*(S)*/
COMP: QLACFLG2 = X'20'            /*(S)*/
COMP: QLACFLG3 = X'10' /*ON if this is a rollup QLAC. See QLACRLNU to*/
COMP: QLACFLG4 = X'08'
                      /*ON if this is a summary rollup QLAC. The data*/
COMP: QLACFLG5 = X'04'            /*(S)*/
COMP: QLACFLG6 = X'02'            /*(S)*/
COMP: QLACFLG7 = X'01'            /*(S)*/
FLD: QLACRLNU LEN(4) TYPE(BIN) DISP(4)
                           /*Number of threads to roll data into this*/
*                       QLAC data section. Non-rollup QLACs will
*                       have a value of 1 and rollup QLACs will
*                       have a value of 1 or more.
FLD: QLACLOCN LEN(16) DISP(8)     /*%U LOCATION NAME OF THE 'REMOTE'*/
*                            ..SITE WITH WHICH THE
*                            ...INFORMATION IS ASSOCIATED.
FLD: QLACPRID LEN(8) DISP(24)     /*THE PRDID OF THE REMOTE LOCATION.*/
FLD: QLACCNVS LEN(8) TYPE(BIN) DISP(32)
                                  /*NUMBER OF CONVERSATIONS THAT*/
*                            ..WERE INITIATED FROM THIS
*                            ...SITE TO THE REMOTE SITE
*                            ..(MEANINGFUL AT AR SITE ONLY)
FLD: QLACCNVT LEN(8) TYPE(BIN) DISP(40)
                                  /*NUMBER OF CONVERSATIONS THAT*/
*                            ..WERE TERMINATED FROM THIS
*                            ...SITE TO THE REMOTE SITE.
*                            ..(MEANINGFUL AT AR ONLY).
FLD: QLACCNVR LEN(8) TYPE(BIN) DISP(48)
                                  /*NUMBER OF CONVERSATIONS THAT*/
*                            ..WERE INITIATED FROM THE
*                            ...REMOTE SITE TO THIS SITE
*                            ..(MEANINGFUL AT AS SITE ONLY)
FLD: QLACMSGS LEN(8) TYPE(BIN) DISP(56)  /*NUMBER OF MESSAGES SENT TO*/
*                            ..THE REMOTE SITE.
FLD: QLACMSGR LEN(8) TYPE(BIN) DISP(64) /*NUMBER OF MESSAGES RECEIVED*/
*                            ..FROM THE REMOTE SITE.
FLD: QLACSQLS LEN(8) TYPE(BIN) DISP(72)
                                  /*NUMBER OF SQL STATEMENTS SENT*/
*                            ..TO THE REMOTE SITE.
FLD: QLACSQLR LEN(8) TYPE(BIN) DISP(80)    /*NUMBER OF SQL STATEMENTS*/
*                            ..RECEIVED FROM THE REMOTE SITE.
FLD: QLACBYTS LEN(8) TYPE(BIN) DISP(88)
                                  /*NUMBER OF BYTES OF DATA SENT*/
*                            ..TO THE REMOTE SITE.
FLD: QLACBYTR LEN(8) TYPE(BIN) DISP(96)     /*NUMBER OF BYTES OF DATA*/
*                            ..RECEIVED FROM THE SITE.
FLD: QLACROWS LEN(8) TYPE(BIN) DISP(104)
                                  /*NUMBER OF ROWS OF DATA SENT TO*/
*                            ..THE REQUESTER (INCLUDES THE SQLDA)
FLD: QLACROWR LEN(8) TYPE(BIN) DISP(112)     /*NUMBER OF ROWS OF DATA*/
*                            ..RETRIEVED FROM THE SERVER (THIS
*                            ...COUNT DOES NOT INCLUDE
*                            ....EITHER THE SQLDA OR SQLCA
*                            .....IF THEY ARE TRANSMITTED).
FLD: QLACBTBF LEN(8) TYPE(BIN) DISP(120)
                           /*NUMBER OF BLOCKS TRANSMITTED USING BLOCK*/
*                            ..FETCH (SERVER SITE ONLY).
FLD: QLACBRBF LEN(8) TYPE(BIN) DISP(128)
                              /*NUMBER OF BLOCKS RECEIVED USING BLOCK*/
*                            ..FETCH (REQUESTER SITE ONLY).
FLD: QLACCOMS LEN(8) TYPE(BIN) DISP(136)
                              /*NUMBER OF COMMIT REQUESTS SENT TO THE*/
*                            ..SERVER (SINGLE-PHASE COMMIT PROTOCOL)
*                            ..AND COMMITTED REQUESTS SENT TO THE
*                            ..PARTICIPANT (TWO-PHASE COMMIT PROTOCOL).
FLD: QLACCOMR LEN(8) TYPE(BIN) DISP(144)
                        /*NUMBER OF COMMIT REQUESTS RECEIVED FROM THE*/
*                            ..REQUESTER (SINGLE-PHASE COMMIT PROTOCOL)
*                            ..AND COMMITTED REQUESTS RECEIVED FROM THE
*                            ..COORDINATOR (TWO-PHASE COMMIT PROTOCOL).
FLD: QLACABRS LEN(8) TYPE(BIN) DISP(152)
                        /*NUMBER OF ABORT REQUESTS SENT TO THE SERVER*/
*                            ..(SINGLE-PHASE COMMIT PROTOCOL) AND
*                            ..NUMBER OF BACKOUT REQUESTS SENT TO THE
*                            ..PARTICIPANT (TWO-PHASE COMMIT PROTOCOL).
FLD: QLACABRR LEN(8) TYPE(BIN) DISP(160)
                         /*NUMBER OF ABORT REQUESTS RECEIVED FROM THE*/
*                            ..REQUESTER (SINGLE-PHASE COMMIT PROTOCOL)
*                            ..AND NUMBER OF BACKOUT REQUESTS RECEIVED
*                            ..FROM THE COORDINATOR (TWO-PHASE COMMIT
*                            ..PROTOCOL)
FLD: QLACINDT LEN(8) TYPE(BIN) DISP(168)
                       /*THE NUMBER OF THREADS THAT WENT INDOUBT WITH*/
*                       THE REMOTE LOCATION AS THE COORDINATOR.
FLD: QLACCNVQ LEN(8) TYPE(BIN) DISP(176)
                                  /*NUMBER OF CONVERSATION REQUESTS*/
*                            ..QUEUED BY DDF WAITING FOR
*                            ...ALLOCATION
*                            ..(MEANINGFUL AT AR ONLY).
FLD: QLACCPUL TYPE(STCKTIME) DISP(184)
                                  /*ELAPSED TIME AT THE LOCAL SITE*/
*                            ..SPENT PROCESSING FOR THE
*                            ...REMOTE SITE. ACCOUNTING ONLY
*                            ..(MEANINGFUL AT AS AND AR SITES)
FLD: QLACMDWT TYPE(STCKTIME) DISP(192)     /*TOTAL ELAPSED TIME SPENT*/
*                       WAITING FOR AN AVAILABLE
*                       DATABASE ACCESS AGENT.
FLD: QLACEND  LEN(4) TYPE(BIN) DISP(200)
*
*
***********************************************************************
**** QLACLOCN_D DSECT       USE IF QLACLOCN_Off,=0                      
***********************************************************************

COMP: QLACLOCN_D_OFFSET = 
           WHEN(QLAC_OFFSET<>99999 AND QLACLOCN_OFF<>0)
                                    ASSIGN(QLAC_OFFSET + QLACLOCN_OFF)
           ELSE                     ASSIGN(99999)
FLD: QLACLOCN_D DISP(0) LEN(1) OFFSET(QLACLOCN_D_OFFSET)
                                  /*USE IF QLACLOCN_Off, 0*/
FLD: QLACLOCN_LEN TYPE(HALF) DISP(0)  /*LENGTH OF THE FOLLOWING FIELD*/
FLD: QLACLOCN_VAR LEN(128) DISP(2)/*%U LOCATION NAME OF THE 'REMOTE'*/
*                              SITE WITH WHICH THE
*                              INFORMATION IS ASSOCIATED.
*                              TRUNCATED OF QLACLOCN_Off^=0
***********************************************************************
**** QMDA     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QMDA, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3AND QWA01R6N > 0)
*           NORMALIZE(QMDA, QWA01R6N)
***********************************************************************
COMP: QMDA_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01R6N > 0) ASSIGN(QWA01R6O)
           ELSE                                 ASSIGN(99999)
FLD: QMDA     DISP(0) LEN(48) OFFSET(QMDA_OFFSET)
FLD: QMDAASLN LEN(1) TYPE(BIN) DISP(0)  /*the number of bytes used in*/
*                                     /* field QMDAAINF.  This will  */
*                                     /* always be the length of     */
*                                     /* QMDAPRID + the number of    */
*                                     /* bytes actually used in field*/
*                                     /* QMDAASTR.                   */
FLD: QMDAAINF LEN(255) DISP(1)    /*Account Information*/
FLD: QMDAPRID LEN(8) DISP(1)      /*the PRODUCT ID value. This*/
*                                     /* identifies which product    */
*                                     /* generated the accounting    */
*                                     /* string.    Binary zeroes    */
*                                     /* means no accounting string  */
*                                     /* is present.                 */
FLD: QMDAPTYP LEN(3) DISP(1)      /*Product Name*/
*                                     /*    DSN-DB2 for z/OS.        */
*                                     /*    ARI-DB2 for VM&VSE.      */
*                                     /*    SQL-DB2 for Linux, Unix, */
*                                     /*        Windows.             */
*                                     /*    JCC-DB2 Universal JDBC   */
*                                     /*        Driver.              */
*                                     /*    QSQ-DB2 for i/Series.    */
FLD: QMDAPVER LEN(2) DISP(4)      /*Product Version*/
FLD: QMDAPREL LEN(2) DISP(6)      /*Product Release*/
FLD: QMDAPMOD LEN(1) DISP(8)      /*Product Modification Level*/
FLD: QMDAASTR LEN(247) DISP(9)    /*The accounting string for*/
*                                     /* the agent.   For LOCAL DB2  */
*                                     /* threads, the format of the  */
*                                     /* accounting string is shown  */
*                                     /* in QMDAINFO.   For DBAAs    */
*                                     /* (distributed server agents),*/
*                                     /* the accounting string will  */
*                                     /* contain whatever the SQL    */
*                                     /* requesting system sent for  */
*                                     /* an accounting string.  The  */
*                                     /* QMDAPRID value identifies   */
*                                     /* which product produced the  */
*                                     /* accounting string.          */
*                                     /* If QMDAPTYP is DSN, then    */
*                                     /* QMDAINFO defines the format.*/
*                                     /* If QMDAPTYP is SQL, then    */
*                                     /* QMDASQLI defines the format.*/
*                                     /* If QMDAPTYP is JCC, then    */
*                                     /* QMDASQLI defines the format.*/
*                                     /* If QMDAPTYP is neither DSN  */
*                                     /* nor SQL, then the format    */
*                                     /* is undefined.               */
*                                     /* QMDAASTR is a 247 byte field*/
*                                     /* but the number of bytes     */
*                                     /* actually used to present the*/
*                                     /* accounting string is vari-  */
*                                     /* able.  The number of bytes  */
*                                     /* used to present the account-*/
*                                     /* string = QMDAASLN - OFFSET( */
*                                     /* QMDAASTR) + 1.              */
FLD: QMDALOCN_OFF TYPE(HALF) DISP(256)          /*Offset from QMDA to*/
*                                     /* The DB2 LOCATION name for   */
*                                     /* the DB2 system that created */
*                                     /* the QMDAINFO values if      */
*                                     /* QMDALOCN is truncated       */
*                                     /* This field is ONLY valid    */
*                                     /* if QMDAINFO maps QMDAASTR   */
FLD: QMDAEND  LEN(1) DISP(258)
*
*     /* QMDAPTYPE product signatures.                               */
FLD: QMDASDSN LEN(3) DISP(258)    /*QMDAPTYP DSN constant*/
FLD: QMDASARI LEN(3) DISP(261)    /*QMDAPTYP ARI constant*/
FLD: QMDASSQL LEN(3) DISP(264)    /*QMDAPTYP SQL constant*/
FLD: QMDASJCC LEN(3) DISP(267)    /*QMDAPTYP JCC constant*/
FLD: QMDASQSQ LEN(3) DISP(270)    /*QMDAPTYP QSQ constant*/
*
*
***********************************************************************
**** QMDAINFO    DSECT                                                  
***********************************************************************

COMP: QMDAINFO_OFFSET = 
           WHEN(SMF101_IFCID3 AND QWA01R6N > 0) ASSIGN(QWA01R6O + 9)
           ELSE                                 ASSIGN(99999)
FLD: QMDAINFO DISP(0) LEN(1) OFFSET(QMDAINFO_OFFSET)
FLD: QMDALOCN LEN(16) DISP(0)     /*%U The DB2 LOCATION name for*/
*                                     /* the DB2 system that created */
*                                     /* the QMDAINFO values.        */
FLD: QMDANETN LEN(8) DISP(16)     /*The SNA NETID of*/
*                                     /* the DB2 system that created */
*                                     /* the QMDAINFO values.        */
FLD: QMDALUNM LEN(8) DISP(24)     /*The SNA LU name of*/
*                                     /* the DB2 system that created */
*                                     /* the QMDAINFO values.        */
FLD: QMDACNAM LEN(8) DISP(32)     /*The DB2 Connection Name at*/
*                                     /* the DB2 system where the    */
*                                     /* SQL application is running. */
FLD: QMDACTYP LEN(8) DISP(40)     /*The DB2 Connection Type at*/
*                                     /* the DB2 system where the    */
*                                     /* SQL application is running. */
FLD: QMDACORR LEN(12) DISP(48)    /*The DB2 Correlation ID at*/
*                                     /* the DB2 system where the    */
*                                     /* SQL application is running. */
FLD: QMDAAUTH LEN(8) DISP(60)     /*The DB2 AUTHID that the SQL*/
*                                     /* application used, prior to  */
*                                     /* name translation and prior  */
*                                     /* to driving the connection   */
*                                     /* exit at the DB2 site where  */
*                                     /* the SQL application is      */
*                                     /* running.                    */
FLD: QMDAPLAN LEN(8) DISP(68)     /*The DB2 PLAN that the SQL*/
*                                     /* application used at the DB2 */
*                                     /* site running the SQL pgm.   */
FLD: QMDAACCT LEN(1) DISP(76)     /*The MVS accounting string*/
*                                     /* associated with the DB2 SQL */
*                                     /* application's MVS address   */
*                                     /* space.                      */
*                                     /*                             */
*                                     /* MVS allows multiple fields  */
*                                     /* to be supplied in the       */
*                                     /* accounting string.   In the */
*                                     /* example below, there are    */
*                                     /* three MVS accounting fields.*/
*                                     /*                             */
*                                     /*     STEP1 EXEC PGM=X,       */
*                                     /*                ACCT=(X,Y,Z) */
*                                     /*                             */
*                                     /* When multiple MVS accounting*/
*                                     /* fields are present, DB2 uses*/
*                                     /* a 'FF'X value to delimit the*/
*                                     /* fields.   In the previous   */
*                                     /* example, DB2 will produce a */
*                                     /* 5 byte accounting string    */
*                                     /* "XdYdZ", where the "d"      */
*                                     /* character represents the    */
*                                     /* 'FF'X accounting field      */
*                                     /* delimiter.                  */
COMP: QMDAACCM = X'8E'            /*QMDAINFO MVS accounting*/
***********************************************************************
**** QMDASQLI    DSECT                                                  
***********************************************************************

COMP: QMDASQLI_OFFSET = 
           WHEN(SMF101_IFCID3 AND QWA01R6N > 0) ASSIGN(QWA01R6O + 9)
           ELSE                                 ASSIGN(99999)
FLD: QMDASQLI DISP(0) LEN(1) OFFSET(QMDASQLI_OFFSET)
FLD: QMDAPLAT LEN(18) DISP(0)     /*Client Platform*/
*                                     /* 1 to 18 characters, padded  */
*                                     /* with blanks                 */
*                                     /* Example values are: "OS/2", */
*                                     /* "AIX", "DOS", "DOS/Windows" */
*
FLD: QMDAAPPL LEN(20) DISP(18)    /*Client Application Name*/
*                                     /* 1 to 20 characters, padded  */
*                                     /* with blanks                 */
*                                     /* Example: "PAYROLL"          */
*
FLD: QMDAATID LEN(8) DISP(38)     /*Client Authid*/
*                                     /* 1 to 8 characters, padded   */
*                                     /* with blanks                 */
*                                     /* This is the Authid of an    */
*                                     /* application process.        */
*                                     /* Example: "SMITH"            */
*
FLD: QMDASFLN LEN(1) DISP(46)     /*Account Suffix Length.*/
FLD: QMDASUFX LEN(1) DISP(47)     /*Account Suffix.*/
*                                     /* The maximum length of this  */
*                                     /* field is 200 bytes.         */
*                                     /* This environment variable   */
*                                     /* is the user-supplied        */
*                                     /* portion (suffix) of the     */
*                                     /* accounting string.          */
*                                     /* Example: "DEFAULT_DRDA"     */
*                                     /* A value of zero in QMDASFLN */
*                                     /* indicates there is no       */
*                                     /* Account Suffix.             */
*
COMP: QMDASUFM = X'C8'            /*QMDASQLI Accounting Suffix*/
***********************************************************************
**** QMDALOCN_D DSECT       Use if QMDALOCN_Off,=0                      
***********************************************************************

COMP: QMDALOCN_D_OFFSET = 
           WHEN(QMDA_OFFSET<>99999 AND QMDALOCN_OFF<>0)
                                   ASSIGN(QMDA_OFFSET + QMDALOCN_OFF)
           ELSE                    ASSIGN(99999)
FLD: QMDALOCN_D DISP(0) LEN(1) OFFSET(QMDALOCN_D_OFFSET)
                                  /*Use if QMDALOCN_Off, 0*/
FLD: QMDALOCN_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QMDALOCN_VAR LEN(128) DISP(2)/*%U The DB2 LOCATION name for*/
*                           the DB2 system that created
*                           the QMDAINFO values if
*                           QMDALOCN is truncated
***********************************************************************
**** QIFA     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QIFA, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01R7N > 0)
*           NORMALIZE(QIFA, QWA01R7N)
***********************************************************************
COMP: QIFA_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01R7N > 0) ASSIGN(QWA01R7O)
           ELSE                                 ASSIGN(99999)
FLD: QIFA     DISP(0) LEN(64) OFFSET(QIFA_OFFSET)
*
*********************************************************************
**     IFI ACCOUNTING DATA FOR IFCID=0003                           *
*********************************************************************
*********************************************************************
**NOTE: FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA            *
**                                                                  *
**  NOTE - THE FOLLOWING TIMES INDICATE A LEVEL OF ACTIVITY FOR     *
**  THE THREAD ADDRESS SPACE DURING THE PERIOD OF TIME THE          *
**  AUTHORIZATION ID WAS ACTIVE BUT SHOULD BE USED WITH CAUTION     *
**  FOR CHARGE BACK                                                 *
*********************************************************************
*
FLD: QIFAAIET TYPE(STCKTIME) DISP(0) /*ACCUMULATED ELAPSED TIME SPENT*/
*                             PROCESSING IFI CALLS - ONLY IF
*                             ACCOUNTING CLASS 5 ACTIVE
FLD: QIFAAITT TYPE(STCKTIME) DISP(8) /*ACCUMULATED TCB CPU TIME SPENT*/
*                             PROCESSING IFI CALLS - ONLY IF
*                             ACCOUNTING CLASS 5 ACTIVE
FLD: QIFAAMBT TYPE(STCKTIME) DISP(16)
                                  /*ACCUMULATED ELAPSED TIME SPENT*/
*                             PROCESSING DATA CAPTURE DESCRIBES
*                             THIS IS A SUBSET OF THE TIME
*                             PROVIDED IN QIFAAMLT
FLD: QIFAAMLT TYPE(STCKTIME) DISP(24)
                                  /*ACCUMULATED ELAPSED TIME SPENT*/
*                             EXTRACTING LOG RECORDS FOR TABLES
*                             DEFINED WITH 'DATA CAPTURE CHANGES'
*                             THIS IS A SUBSET OF THE TIME
*                             PROVIDED IN QIFAAIET
FLD: QIFAANIF LEN(4) TYPE(BIN) DISP(32)
                                 /*NUMBER OF ENTRY/EXIT TO IFI EVENTS*/
*                             ONLY IF ACCOUNTING CLASS 5 ACTIVE
FLD: QIFAANLR LEN(4) TYPE(BIN) DISP(36)
                                  /*NUMBER OF DATA CAPTURE LOG READS*/
*                             PERFORMED
FLD: QIFAANRC LEN(4) TYPE(BIN) DISP(40)
                                 /*NUMBER OF LOG RECORDS CAPTURED FOR*/
*                             WHICH DATA CAPTURE PROCESSING WAS
*                             INVOKED
FLD: QIFAANRR LEN(4) TYPE(BIN) DISP(44)
                                 /*NUMBER OF DATA CAPTURE LOG RECORDS*/
*                             RETURNED TO CALLER AS A RESULT OF IFI
*                             READS REQUESTS FOR IFCID 185
FLD: QIFAANDR LEN(4) TYPE(BIN) DISP(48)
                                  /*NUMBER OF DATA CAPTURE DATA ROWS*/
*                             RETURNED.  TWO ROWS ARE RETURNED FOR
*                             EACH ROW ALTERED BY AN SQL UPDATE
*                             STATEMENT.  DATA CAPTURE DATA ROWS ARE
*                             RETURNED IN IFCID 185 AND ARE MAPPED BY
*                             BY QW0185DR
FLD: QIFAANDD LEN(4) TYPE(BIN) DISP(52)
                           /*NUMBER OF DATA CAPTURE DATA DESCRIPTIONS*/
*                             RETURNED.  DATA CAPTURE DATA DESCRIPTIONS
*                             ARE MAPPED IN IFCID 185 BEGINNING
*                             WITH FIELD QW0185DD
FLD: QIFAANMB LEN(4) TYPE(BIN) DISP(56)
                                  /*NUMBER OF DATA CAPTURE DESCRIBES*/
*                             PERFORMED
FLD: QIFAANTB LEN(4) TYPE(BIN) DISP(60)
                            /*NUMBER OF DATA CAPTURE TABLES FOR WHICH*/
*                             DATA CAPTURE DESCRIPTIONS WERE RETURNED
FLD: QIFAEND  LEN(1) DISP(64)
*
***********************************************************************
**** QWAR     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QWAR, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01R8N > 0)
*           NORMALIZE(QWAR, QWA01R8N)
***********************************************************************
COMP: QWAR_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01R8N > 0) ASSIGN(QWA01R8O)
           ELSE                                 ASSIGN(99999)
FLD: QWAR     DISP(0) LEN(24) OFFSET(QWAR_OFFSET)
FLD: QWARACE  LEN(8) DISP(0)      /*] Agent token for the transaction*/
*                          ] rolled into the record. This can be used
*                          ] to correlate to records written with the
*                          ] the same QWHSACE value during the time
*                          ] of the transaction (QWARBSC to QWARESC).
FLD: QWARBSC  LEN(8) DISP(8)
                           /*] The beginning time for the transaction*/
FLD: QWARESC  LEN(8) DISP(16)    /*] The end time for the transaction*/
***********************************************************************
**** QBGA     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QBGA, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01R9N > 0)
*           NORMALIZE(QBGA, QWA01R9N)
***********************************************************************
COMP: QBGA_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01R9N > 0) ASSIGN(QWA01R9O)
           ELSE                                 ASSIGN(99999)
FLD: QBGA     DISP(0) LEN(92) OFFSET(QBGA_OFFSET)
FLD: QBGAGN   LEN(4) TYPE(BIN) DISP(0)         /*Group Buffer Pool id*/
FLD: QBGAACCT LEN(88) DISP(4)
FLD: QBGAGG   LEN(4) DISP(4)      /*GetPages for GBP Dep pages*/
FLD: QBGAXD   LEN(4) TYPE(BIN) DISP(8)               /*# of SES reads*/
*                                        necessary due to buffer cross
*                                        invalidation (XI) in which
*                                        data was returned           */
FLD: QBGAXR   LEN(4) TYPE(BIN) DISP(12)              /*# of SES reads*/
*                                        necessary due to buffer XI
*                                        in which data was not
*                                        returned from SES and
*                                        directory entry assignment
*                                        was not suppressed (the
*                                        directory entry previously
*                                        existed or was constructed
*                                        as a result of this SES-read
*                                        request).  A DB2 optimization
*                                        will request suppression
*                                        of the directory entry assign-
*                                        ment when no other DB2 in the
*                                        group has R/W interest in the
*                                        pageset/partition           */
FLD: QBGAEX   LEN(4) TYPE(BIN) DISP(16)          /*# of explicit XI's*/
FLD: QBGAMD   LEN(4) TYPE(BIN) DISP(20)    /*# of SES reads necessary*/
*                                        due to the requested page
*                                        not being found in the
*                                        buffer pool in which data
*                                        was returned from SES. */
FLD: QBGAMR   LEN(4) TYPE(BIN) DISP(24)              /*# of SES reads*/
*                                        necessary due to the reques-
*                                        ted page not being found in
*                                        the buffer pool in which
*                                        data was not returned and
*                                        directory entry assignment
*                                        was not suppressed (see
*                                        QBGAXR for an
*                                        explanation of directory
*                                        entry suppression).         */
FLD: QBGAMN   LEN(4) TYPE(BIN) DISP(28)    /*# of pages read from GBP*/
*                                        due to prefetch under
*                                        the control of the agent    */
FLD: QBGASW   LEN(4) TYPE(BIN) DISP(32)
                                  /*# of changed pages written to*/
*                                        the GBP via Write and
*                                        Register (WAR) or Write and
*                                        Register Multiple (WARM)    */
FLD: QBGAWC   LEN(4) TYPE(BIN) DISP(36) /*# of clean pages written to*/
*                                        the GBP                     */
FLD: QBGADG   LEN(4) TYPE(BIN) DISP(40)      /*# of "unregister page"*/
*                                        requests                    */
FLD: QBGAWM   LEN(4) TYPE(BIN) DISP(44)     /*# of Write and Register*/
*                                        Multiple (WARM) requests    */
FLD: QBGA2S   LEN(4) TYPE(BIN) DISP(48)
                                  /*# completion checks for writes*/
*                                        to the secondary GBP that
*                                        were suspended beause the
*                                        write had not yet completed.*/
FLD: QBGAHS   LEN(4) TYPE(BIN) DISP(52) /*# Asynch IXLCACHE for P GBP*/
FLD: QBGA2H   LEN(4) TYPE(BIN) DISP(56) /*# Asynch IXLCACHE for S GBP*/
FLD: QBGAP1   LEN(4) TYPE(BIN) DISP(60)
                                  /*# page P lock lock requests for*/
*                                        space map pages             */
FLD: QBGAP2   LEN(4) TYPE(BIN) DISP(64)
                                  /*# page P lock lock requests for*/
*                                        data pages                  */
FLD: QBGAP3   LEN(4) TYPE(BIN) DISP(68)
                                  /*# page P lock lock requests for*/
*                                        index leaf pages            */
FLD: QBGAU1   LEN(4) TYPE(BIN) DISP(72)
                                  /*# page P lock unlock requests*/
FLD: QBGAS1   LEN(4) TYPE(BIN) DISP(76)
                                  /*# page P lock lock suspensions*/
*                                        for space map pages         */
FLD: QBGAS2   LEN(4) TYPE(BIN) DISP(80)
                                  /*# page P lock lock suspensions*/
*                                        for data pages              */
FLD: QBGAS3   LEN(4) TYPE(BIN) DISP(84)
                                  /*# page P lock lock suspensions*/
*                                        for index leaf pages        */
FLD: QBGAWS   LEN(4) TYPE(BIN) DISP(88)
                                  /*# of Write and Register (WAR)*/
*                                        requests                    */
FLD: QBGAEND  LEN(1) DISP(92)
***********************************************************************
**** QTGA     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QTGA, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01RAN > 0)
*           NORMALIZE(QTGA, QWA01RAN)
***********************************************************************
COMP: QTGA_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01RAN > 0) ASSIGN(QWA01RAO)
           ELSE                                 ASSIGN(99999)
FLD: QTGA     DISP(0) LEN(44) OFFSET(QTGA_OFFSET)
*/********************************************************************/
*/* In the descriptions below, the term "L-lock" refers to a         */
*/* "logical lock", or a lock that is acquired and owned by a        */
*/* DB2 thread.  The term "P-lock" refers to a                       */
*/* "physical lock", or a lock that is acquired and owned the        */
*/* DB2 subsystem (i.e. P-locks are not owned by threads).           */
*/* A P-lock may be requested on behalf of the subsystem under a     */
*/* user TCB.                                                        */
*/********************************************************************/
FLD: QTGALPLK LEN(4) TYPE(BIN) DISP(0) /*# Lock requests for P locks.*/
*                                         This is a subset of QTXALOCK
*                                         which contains the total #
*                                         of Lock requests (L-locks
*                                         P-locks).                  */
FLD: QTGACPLK LEN(4) TYPE(BIN) DISP(4)
                                  /*# Change requests for P locks.*/
*                                         This is a subset of QTXACHG
*                                         which contains the total #
*                                         of Change requests (L-locks
*                                         P-locks).                  */
FLD: QTGAUPLK LEN(4) TYPE(BIN) DISP(8)
                                  /*# Unlock requests for P locks.*/
*                                         This is a subset of QTXAUNLK
*                                         which contains the total #
*                                         of Unlock requests (L-locks
*                                         P-locks).                  */
FLD: QTGALSLM LEN(4) TYPE(BIN) DISP(12)  /*# lock requests propagated*/
*                                         to XES (L-lock or P-lock)
*                                         synchronously, i.e. under
*                                         caller's execution unit. If
*                                         the request suspends for any
*                                         reason, this counter will not
*                                         be incremented.            */
FLD: QTGACSLM LEN(4) TYPE(BIN) DISP(16)
                                  /*# change requests propagated*/
*                                         to XES (L-lock or P-lock)
*                                         synchronously, i.e. under
*                                         caller's execution unit. If
*                                         the request suspends for any
*                                         reason, this counter will not
*                                         be incremented.            */
FLD: QTGAUSLM LEN(4) TYPE(BIN) DISP(20)
                                  /*# unlock requests propagated*/
*                                         to XES (L-lock or P-lock)
*                                         synchronously, i.e. under
*                                         caller's execution unit. If
*                                         the request suspends for any
*                                         reason, this counter will not
*                                         be incremented.            */
*
*
*    /****************************************************************/
*    /* The following 3 fields give the counts for the number of     */
*    /* suspends due to global contention for lock requests.  A      */
*    /* "global contention" occurs when inter-system communication   */
*    /* is required to resolve the lock conflict.  This is in        */
*    /* contrast to a "local contention" in which no inter-system    */
*    /* communication is required to resolve the lock conflict - the */
*    /* conflict can be resolved entirely within the local IRLM for  */
*    /* local contention.                                            */
*    /*                                                              */
*    /* The sum of QTGAIGLO, QTGASGLO and QTGAFLSE gives the total   */
*    /* number of suspends due to global contention.                 */
*    /*                                                              */
*    /* QTXASLOC gives the number of suspends due to local resource  */
*    /* contention.                                                  */
*    /****************************************************************/
FLD: QTGAIGLO LEN(4) TYPE(BIN) DISP(24)
                                  /*# suspends due to IRLM global*/
*                                         resource contention. IRLM
*                                         lock states were in conflic*/
FLD: QTGASGLO LEN(4) TYPE(BIN) DISP(28)
                                  /*# suspends due to XES global*/
*                                         resource contention but no
*                                         IRLM global resource con-
*                                         tention. XES lock states were
*                                         in conflict but the IRLM lock
*                                         states were not.           */
FLD: QTGAFLSE LEN(4) TYPE(BIN) DISP(32)
                                  /*# suspends due to sync to async*/
*                                         XES heuristic conversions. */
FLD: QTGADRTA LEN(4) TYPE(BIN) DISP(36)     /*# global lock or change*/
*                                         requests denied or suspended
*                                         because of an incompatible
*                                         retained lock              */
FLD: QTGANTFY LEN(4) TYPE(BIN) DISP(40)      /*# notify messages sent*/
*
FLD: QTGAFCNT LEN(4) TYPE(BIN) DISP(44)
                                  /*# false contentions for LOCK*/
*                                         and UNLOCK requests.
*                                         A false contention
*                                         occurs when different
*                                         resource names hash to the
*                                         same entry in the CF lock
*                                         table.  The CF detects
*                                         contention within the hash
*                                         entry, and XES uses inter-
*                                         system messaging to determine
*                                         that no actual resource
*                                         contention exists.
*                                         Note #1:  when OA12164 and
*                                         PK85159 are applied, this
*                                         counter will report false
*                                         contentions for a member
*                                         against which the accounting
*                                         report is run.
*                                         Note #2:  In the absence
*                                         of OA12164  & PK85159, this
*                                         counter will be zero.      */
*
FLD: QTGAEND  LEN(1) DISP(48)
***********************************************************************
**** QWDA     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QWDA, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01RBN > 0)
*           NORMALIZE(QWDA, QWA01RBN)
***********************************************************************
COMP: QWDA_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01RBN > 0) ASSIGN(QWA01RBO)
           ELSE                                 ASSIGN(99999)
FLD: QWDA     DISP(0) LEN(8) OFFSET(QWDA_OFFSET)
*
*/********************************************************************/
*/*     INSTRUMENTATION ACCOUNTING DATA FOR DATA SHARING             */
*/********************************************************************/
*
*/********************************************************************/
*/ NOTE: FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA            */
*/********************************************************************/
*
FLD: QWDAXCQO LEN(8) DISP(0)      /*On a child task this field is a*/
*                               /* correlating value indicating      */
*                               /* the member name of the parallelism*/
*                               /* coordinator.  This value          */
*                               /* (in conjunction with QWACPACE)    */
*                               /* can be used to correlate all of   */
*                               /* the parallel task records with    */
*                               /* the records of the originating    */
*                               /* task.                             */
*                               /* On the coordinating task, there   */
*                               /* may be multiple occurences of the */
*                               /* QWDA, with a data section for     */
*                               /* each assisting member. The member */
*                               /* name for the originating task is  */
*                               /* not included in this list.        */
*                               /* If all assisting tasks run on the */
*                               /* same member as the coordinator,   */
*                               /* there is no QWDA for the          */
*                               /* coordinator.                      */
*                               /* The number of QWDA data sections  */
*                               /* is in the QWT02RFN field for IFC's*/
*                               /* 147, 148 and in the QWA01RBN field*/
*                               /* for IFC 3.                        */
*
***********************************************************************
**** QWAX     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QWAX, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01RCN > 0)
*           NORMALIZE(QWAX, QWA01RCN)
***********************************************************************
COMP: QWAX_OFFSET =
           WHEN(SMF101_IFCID3 AND QWA01RCN > 0) ASSIGN(QWA01RCO)
           ELSE                                 ASSIGN(99999)
FLD: QWAX     DISP(0) LEN(116) OFFSET(QWAX_OFFSET)
*/********************************************************************
*  NOTE: If QWACPARR is on in QWACFLGS, this is a rollup record.     *
*        A rollup record is written with accumulated                 *
*        counter data for the following type of threads:             *
*                                                                    *
*        - Query parallelism child tasks, if ZPARM PTASKROL = YES    *
*        - DDF and RRSAF threads, is ZPARM ACCUMACC is >= 2          *
*                                                                    *
*        Query parallelism child tasks:                              *
*        A rollup record is written with accumulated counter data    *
*        when the parent task (agent) deallocates on an originating  *
*        DB2, or when an accumulating child task deallocated on an   *
*        assisting DB2.  The rollup data is an accumulation of all   *
*        the counters for that field for each child task that        *
*        completed and deallocated.                                  *
*                                                                    *
*        DDF and RRSAF threads:                                      *
*        A rollup record is written with accumulated counter data    *
*        for a given end user when the number of occurrences of that *
*        end user reaches the ZPARM value for ACCUMACC. End user     *
*        user is the concatenation of the following three            *
*        values as defined by ZPARM ACCUMUID:                        *
*          - End user userid (QWHEUID, 16 bytes)                     *
*          - End user transaction name (QWHCEUTX, 32 bytes)          *
*          - End user workstation name (QWHCEUWN, 18 bytes)          *
*                                                                    *
*        All QWAX fields are valid in rollup records.                *
*                                                                    *
**********************************************************************/
*
*
*
*/********************************************************************/
*  The following values are applicable only if accounting class 3
*  is active.  The QWAX section is included only if at least one
*  of these values is non-zero.
*/********************************************************************/
FLD: QWAX4    LEN(4) TYPE(BIN) DISP(0)
FLD: QWAXALOG TYPE(STCKTIME) DISP(0)
                         /*Accumulated wait time due to processing of*/
*                         ARCHIVE LOG MODE(QUIESCE) commands
*                      NOTE:
*                        This number represents the amount of
*                        time that an individual thread was suspended
*                        due to an ARCHIVE LOG MODE(QUIESCE) command
*                        and not the time that it took for the entire
*                        command to complete                         */
FLD: QWAXALCT LEN(4) TYPE(BIN) DISP(8)
                            /*Number of suspensions due to processing*/
*                        of ARCHIVE LOG MODE(QUIESCE) commands.
*                        QWAXALCT is a Class 1 value.                */
FLD: QWAXX    LEN(4) TYPE(BIN) DISP(12)
FLD: QWAXARND LEN(4) TYPE(BIN) DISP(12)
                              /*Number of wait trace events processed*/
*                        for waits for a drain lock.                 */
FLD: QWAXAWDR TYPE(STCKTIME) DISP(16)
                            /*Accumulated wait time for a drain lock.*/
FLD: QWAXAWCL TYPE(STCKTIME) DISP(24)
                                  /*Accumulated wait time for a drain*/
*                        when waiting for claims to be released      */
FLD: QWAXARNC LEN(4) TYPE(BIN) DISP(32)
                              /*Number of wait trace events processed*/
*                        for suspensions to wait for claims to
*                        be released                                 */
FLD: QWAXAWAR TYPE(STCKTIME) DISP(36)    /*Accumulated wait time for:*/
*                         - archive reads
*                         - active reads
*                         - active log prefetch reads                */
FLD: QWAXANAR LEN(4) TYPE(BIN) DISP(44)
                              /*Number of wait trace events processed*/
*                        for:
*                         - archive reads
*                         - active reads
*                         - active log prefetch reads                */
FLD: QWAXOCSE TYPE(STCKTIME) DISP(48)
                           /*Accumulated wait time due to synchronous*/
*                         execution unit switch to the DB2
*                         Open/Close data set service or the
*                         HSM recall service.                        */
FLD: QWAXSLSE TYPE(STCKTIME) DISP(56)
                           /*Accumulated wait time due to synchronous*/
*                         execution unit switch to the DB2
*                         SYSLGRNG recording service.  This service
*                         is also sometimes used for level-id
*                         checking for down level detection.         */
FLD: QWAXDSSE TYPE(STCKTIME) DISP(64)
                           /*Accumulated wait time due to synchronous*/
*                         execution unit switch to the DB2
*                         Dataspace Manager Services, which include:
*                            - Define data set
*                            - Extend data set
*                            - Delete data set
*                            - Reset data set
*                            - VSAM catalog access                   */
FLD: QWAXOTSE TYPE(STCKTIME) DISP(72)
                           /*Accumulated wait time due to synchronous*/
*                         execution unit switch to other DB2
*                         service tasks                              */
FLD: QWAXOCNS LEN(4) TYPE(BIN) DISP(80)
                          /*Number of wait trace events processed for*/
*                         waits for synchronous execution unit
*                         switching to the Open/Close service.      */
FLD: QWAXSLNS LEN(4) TYPE(BIN) DISP(84)
                          /*Number of wait trace events processed for*/
*                         waits for synchronous execution unit
*                         switching to the Syslgrng recording
*                         service.                                  */
FLD: QWAXDSNS LEN(4) TYPE(BIN) DISP(88)
                          /*Number of wait trace events processed for*/
*                         waits for synchronous execution unit
*                         switching to Dataspace Manager
*                         service tasks.                            */
FLD: QWAXOTNS LEN(4) TYPE(BIN) DISP(92)
                          /*Number of wait trace events processed for*/
*                         waits for synchronous execution unit
*                         switching to other service tasks.         */
FLD: QWAX2X   LEN(4) TYPE(BIN) DISP(96)
FLD: QWAXAWFC TYPE(STCKTIME) DISP(96)
                           /*Accumulated wait time for commit phase 1*/
*                         database write I/O completion.            */
FLD: QWAXFCCT LEN(4) TYPE(BIN) DISP(104)
                          /*Number of wait trace events processed for*/
*                         force-at-commit                           */
FLD: QWAXIXLE LEN(4) TYPE(BIN) DISP(108)
                          /*Number of wait trace events processed for*/
*                         asynch IXLCACHE/IXLFCOMP invocations.
*                         These are incremented by IFCID 329 which
*                         is NOT part of a begin/end pair so this
*                         number represents the true # of events and
*                         is not doubled as are other wait events.  */
FLD: QWAXIXLT LEN(4) TYPE(B-SECS) DISP(112) DEC(6)
                             /*Accumulated wait time for IXLCACHE and*/
*                         IXLFCOMP asynch req. in microseconds      */
*
FLD: QWAXEND  LEN(1) DISP(116)
*
*                    SCC STATISTICS DATA FOR TYPE 100 SUBTYPE 1 RECORD
*                    SCC ACCOUNTING DATA FOR TYPE 101 SUBTYPE 0 RECORD
***********************************************************************
**** DSNDQTXA DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF DSNDQTXA, USE:
*    INPUT: SMF101
*           NORMWHEN((SMF101_IFCID3 OR SMF101_IFCID239) AND QWA01R4N > 0)
*           NORMALIZE(QTXA, QWA01R4N)
***********************************************************************
COMP: QTXA_OFFSET =
  /* QWA01R4O AND QWA11R4O ARE IN SAME LOCATION */
           WHEN((SMF101_IFCID3 OR SMF101_IFCID239) AND QWA01R4N > 0)
                                                   ASSIGN(QWA01R4O)
           ELSE                                    ASSIGN(99999)
FLD: DSNDQTXA DISP(0) LEN(88) OFFSET(QTXA_OFFSET)
FLD: QTXA     LEN(8) DISP(0)
FLD: QTXADEA  LEN(4) TYPE(BIN) DISP(0)               /*Deadlock count*/
FLD: QTXASLOC LEN(4) TYPE(BIN) DISP(4)
                                  /*Number of suspends because of*/
*                                        lock conflicts
FLD: QTXATIM  LEN(4) TYPE(BIN) DISP(8)               /*Timeout counts*/
FLD: QTXALES  LEN(4) TYPE(BIN) DISP(12)  /*Count of lock escal shared*/
FLD: QTXALEX  LEN(4) TYPE(BIN) DISP(16)
                                  /*Count of lock escal exclusive*/
FLD: QTXANPL  LEN(4) TYPE(BIN) DISP(20)   /*Max number of page or row*/
*                                        locks held.
*                                        Not applicable for Statistics
*                                        IFCID 2.
FLD: QTXAFLG1 LEN(1) DISP(24)     /*First Flag Byte*/
COMP: QTXAILMT = X'80'            /*Infinite Limit*/
COMP: QTXANRUN = X'40'            /*No Run or Zero Limit*/
FLD: QTXARLID LEN(2) DISP(26)     /*Resource Limit Table ID*/
FLD: QTXAPREC LEN(4) TYPE(BIN) DISP(28)    /*How Limit was determined*/
COMP: QTXAPRC1 = 1                /*Limit from specific Authid*/
COMP: QTXAPRC2 = 2                /*Limit from specific Authid*/
COMP: QTXAPRC3 = 3                /*Limit from specific Planname*/
COMP: QTXAPRC4 = 4                /*Limit from blank Authid & Plan*/
COMP: QTXAPRC5 = 5                /*Limit from Install no entry*/
COMP: QTXAPRC6 = 6                /*Limit from Install I/O error*/
COMP: QTXAPRC7 = 7                /*Infinite limit user has*/
COMP: QTXAPRC8 = 8                /*Limit from specific Authid,*/
COMP: QTXAPRC9 = 9                /*Limit from specific Authid*/
COMP: QTXAPR10 = 10               /*Limit from specific Authid*/
COMP: QTXAPR11 = 11               /*Limit from Authid running*/
COMP: QTXAPR12 = 12               /*Limit from specific package*/
COMP: QTXAPR13 = 13               /*Limit from any Authid and*/
COMP: QTXAPR14 = 14               /*Limit from any Authid and*/
COMP: QTXAPR15 = 15               /*Limit from any Authid, pkg,*/
FLD: QTXASLMT LEN(4) TYPE(BIN) DISP(32)       /*Limit in SU's ASUTIME*/
FLD: QTXACLMT LEN(4) TYPE(BIN) DISP(36)
                                  /*Limit in CPU 16 microseconds*/
FLD: QTXACHUS LEN(4) TYPE(BIN) DISP(40)
                                  /*Highest CPU 16 microsecs used*/
FLD: QTXASLAT LEN(4) TYPE(BIN) DISP(44)
                                  /*Suspend count latch conflict*/
FLD: QTXASOTH LEN(4) TYPE(BIN) DISP(48)
                                  /*Suspend count other conflict*/
FLD: QTXALOCK LEN(4) TYPE(BIN) DISP(52)          /*Lock request count*/
FLD: QTXAUNLK LEN(4) TYPE(BIN) DISP(56)        /*Unlock request count*/
FLD: QTXAQRY  LEN(4) TYPE(BIN) DISP(60)         /*Query request count*/
FLD: QTXACHG  LEN(4) TYPE(BIN) DISP(64)        /*Change request count*/
FLD: QTXAIRLM LEN(4) TYPE(BIN) DISP(68)    /*Other IRLM request count*/
FLD: QTXACLNO LEN(4) TYPE(BIN) DISP(72)    /*Number of claim requests*/
FLD: QTXACLUN LEN(4) TYPE(BIN) DISP(76)
                                  /*Number of claim requests that*/
*                                          were unsuccessful
FLD: QTXADRNO LEN(4) TYPE(BIN) DISP(80)    /*Number of drain requests*/
FLD: QTXADRUN LEN(4) TYPE(BIN) DISP(84)
                                  /*Number of drain requests that*/
*                                          were unsuccessful
FLD: QTXAEND  LEN(1) DISP(88)

***********************************************************************
**** Q8AC     DSECT                                                    
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF Q8AC, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID3 AND QWA01RDN > 0)
*           NORMALIZE(Q8AC, QWA01RDN)
***********************************************************************
COMP: Q8AC_OFFSET =
  /* QWA01R4O AND QWA11RO ARE IN SAME LOCATION */
           WHEN(SMF101_IFCID3 AND QWA01RDN > 0)
                                                   ASSIGN(QWA01RDO)
           ELSE                                    ASSIGN(99999)
FLD: Q8AC     DISP(0) LEN(132) OFFSET(Q8AC_OFFSET)
FLD: Q8ACNAME_OFF LEN(2) TYPE(BIN) DISP(0)
                                  /*ACCELERATOR SERVER ID OFFSET*/
FLD: Q8ACPRID LEN(8) DISP(2)      /*ACCELERATOR PRODUCT ID*/
FLD: Q8ACCONN LEN(4) TYPE(BIN) DISP(10)  /*# OF ACCELERATOR CONNECTS.*/
FLD: Q8ACREQ  LEN(4) TYPE(BIN) DISP(14)  /*# OF ACCELERATOR REQUESTS.*/
FLD: Q8ACTOUT LEN(4) TYPE(BIN) DISP(18)    /*# OF TIMED OUT REQUESTS.*/
FLD: Q8ACFAIL LEN(4) TYPE(BIN) DISP(22)       /*# OF FAILED REQUESTS.*/
FLD: Q8ACBYTS LEN(8) TYPE(BIN) DISP(26)            /*# OF BYTES SENT.*/
FLD: Q8ACBYTR LEN(8) TYPE(BIN) DISP(34)        /*# OF BYTES RETURNED.*/
FLD: Q8ACMSGS LEN(4) TYPE(BIN) DISP(42)         /*# OF MESSAGES SENT.*/
FLD: Q8ACMSGR LEN(4) TYPE(BIN) DISP(46)     /*# OF MESSAGES RETURNED.*/
FLD: Q8ACBLKS LEN(4) TYPE(BIN) DISP(50)            /*# OF BLOCKS SENT*/
FLD: Q8ACBLKR LEN(4) TYPE(BIN) DISP(54)       /*# OF BLOCKS RETURNED.*/
FLD: Q8ACROWS LEN(8) TYPE(BIN) DISP(58)              /*# OF ROWS SENT*/
FLD: Q8ACROWR LEN(8) TYPE(BIN) DISP(66)         /*# OF ROWS RETURNED.*/
FLD: Q8ACSCPU TYPE(STCKTIME) DISP(74)
                                  /*ACCELERATOR SERVICES CPU TIME.*/
*                           THE TIME IS ONLY APPLICABLE TO ISAO V1.    
FLD: Q8ACSELA TYPE(STCKTIME) DISP(82)
                                 /*ACCELERATOR SERVICES ELAPSED TIME.*/
*                           THE TIME IS ONLY APPLICABLE TO ISAO V1.    
FLD: Q8ACTCPU TYPE(STCKTIME) DISP(90)
                                  /*ACCELERATOR SVCS TCP/IP CPU TIME.*/
FLD: Q8ACTELA TYPE(STCKTIME) DISP(98)
                              /*ACCELERATOR SVCS TCP/IP ELAPSED TIME.*/
FLD: Q8ACACPU LEN(8) TYPE(B-SECS) DISP(106) DEC(6)
                                  /*ACCUMULATED ACCELERATOR CPU TIME.*/
*                           THE REPRESENTATION OF Q8ACACPU IS A NUMERIC
*                           VALUE IN MICROSECOND UNIT.                 
FLD: Q8ACAELA LEN(8) TYPE(B-SECS) DISP(114) DEC(6)
                              /*ACCUMULATED ACCELERATOR ELAPSED TIME.*/
*                           THE REPRESENTATION OF Q8ACAELA IS A NUMERIC 
*                           VALUE IN MICROSECOND UNIT.                  
FLD: Q8ACAWAT LEN(8) TYPE(B-SECS) DISP(122) DEC(6)
                                 /*ACCUMULATED ACCELERATOR WAIT TIME.*/
*                           THE REPRESENTATION OF Q8ACAWAT IS A NUMERIC 
*                           VALUE IN MICROSECOND UNIT.                  
FLD: Q8ACEND  LEN(4) TYPE(BIN) DISP(130)
*                                                                       
*                                                                       
***********************************************************************
**** Q8ACNAME_D DSECT       USE IF Q8ACNAME_Off<>0                      
***********************************************************************

COMP: Q8ACNAME_OFFSET = 
           WHEN(Q8AC_OFFSET<>99999 AND Q8ACNAME_OFF<>0)
                                   ASSIGN(Q8AC_OFFSET + Q8ACNAME_OFF)
           ELSE                    ASSIGN(99999)
FLD: Q8ACNAME_D DISP(0) LEN(1) OFFSET(Q8ACNAME_OFFSET)
                                  /*USE IF Q8ACNAME_Off<>0*/
FLD: Q8ACNAME_LEN TYPE(HALF) DISP(0)  /*LENGTH OF THE FOLLOWING FIELD*/
FLD: Q8ACNAME_VAR LEN(128) DISP(2)/*ACCELERATOR SERVER NAME*/

***********************************************************************
* DB2 DSNDQWAS SUBTYPE=1 ACCOUNTING RECORD SECTION MAPPING FOR        *
*                      OVERFLOW PACKAGE/DBRM ACCOUNTING INFORMATION   *
*                                                                     *
* THE RECORD IS WRITTEN TO SMF AS A SMF TYPE 101 RECORD               *
*(SEE SYSTEM PLANNING AND ADMINISTRATION GUIDE FOR ADDITIONAL DETAIL) *
***********************************************************************
*   DSECT   MACRO      *  DESCRIPTION OF SECTIONS IN RECORD           *
*---------------------------------------------------------------------*
*   SM101   DSNDQWAS   *  SMF HEADER SECTION                          *
*
*  NOTE: FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA
*---------------------------------------------------------------------*
*                      * IFCID 0239 FOLLOWS:
*   QWA1    DSNDQWA1   *  SELF DEFINING SECTION - NOTE: USE OFFSETS
*                      *   IN QWA1 TO GET TO THE FOLLOWING SECTIONS
*----------------------*   BECAUSE THEIR EXACT POSITION VARIES
*                      *
*                      *  See DSNDQWA1 for parsing algorithm for
*                      *  varying length repeating group section(s):
*                      *  QPAC
*                      *
*                      *  Important package detail information: An
*                      *  IFCID 239 will consist of only data sections
*                      *  1 and 2 mapped by DSNDQPKG and DSNDQPAC when
*                      *  accounting or monitor class 10 are NOT on.
*                      *  When either accounting or monitor class 10 is
*                      *  ON, package detail is enabled and data
*                      *  sections 3, 4, and 5 mapped by DSNDQXPK,
*                      *  DSNDQBAC, and DSNDQTXA will be written.
*                      *  If package detail is enabled and accounting
*                      *  or monitor classes 7 or 8 are not ON, no
*                      *  IFCID239 will be written. Thus it is not
*                      *  possible to have an IFCID239 record with
*                      *  package detail information but no class
*                      *  7 or class 8 data.
*                      *
*                      *
*                      *  Important rollup information: An IFCID 239
*                      *  will contain rollup data if QPACROLL = ON.
*                      *  All QPACs in a rollup 239 record will have
*                      *  QPACROLL = ON so it is sufficient to check
*                      *  the first QPAC to determine if this is a
*                      *  rollup 239 record.
*                      *
*                      *  A rollup IFCID 239 record will consist of
*                      *  headers + 1 QPKG + the needed QPAC sections.
*                      *  No other data sections are rolled up at the
*                      *  package level regardless of the enablement of
*                      *  accounting or monitor class 10.
*                      *
*                      *FOLLOWING SECTIONS BEGIN ON A WORD BOUNDARY
*                      *  PRODUCT SECTION. THE 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
*   QPKG    DSNDQPKG   *   Tracking which pkgs are in each 239 record
*   QPAC    DSNDQPAC   *   General package accounting.
*   QXPK    DSNDQXPK   *   RDS accounting
*   QBAC    DSNDQBAC   *   Buffer manager accounting
*   QTXA    DSNDQTXA   *   Locking accounting
************************
***********************************************************************
**** QWA1     DSECT                                                     
***********************************************************************

FLD: QWA1     DISP(0) LEN(1) OFFSET(28)
*
*  /* DB2 SELF DEFINING SECTION MACRO FOR ACCOUNTING IFCID=0239      */
*
*  /*  PRODUCT SECTION FOR ACCOUNTING CONTAINS TWO HEADERS
*    1.THE STANDARD HEADER IS MAPPED BY DSNDQWHS
*    2.THE CORRELATION HEADER IS MAPPED BY DSNDQWHC                  */
*
FLD: QWA11PSO LEN(4) TYPE(BIN) DISP(0)
                                  /*OFFSET TO THE PRODUCT SECTION*/
FLD: QWA11PSL LEN(2) TYPE(BIN) DISP(4)
                                  /*LENGTH OF THE PRODUCT SECTION*/
FLD: QWA11PSN LEN(2) TYPE(BIN) DISP(6)   /*NUMBER OF PRODUCT SECTIONS*/
*  /*        MAPPED BY DSNDQPKG                                      */
FLD: QWA11R1O LEN(4) TYPE(BIN) DISP(8)   /*OFFSET TO THE DATA SECTION*/
FLD: QWA11R1L LEN(2) TYPE(BIN) DISP(12)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA11R1N LEN(2) TYPE(BIN) DISP(14)     /*NUMBER OF DATA SECTIONS*/
*  /*        MAPPED BY DSNDQPAC                                      */
FLD: QWA11R2O LEN(4) TYPE(BIN) DISP(16)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA11R2L LEN(2) TYPE(BIN) DISP(20)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA11R2N LEN(2) TYPE(BIN) DISP(22)     /*NUMBER OF DATA SECTIONS*/
*  /*        MAPPED BY DSNDQXPK                                      */
FLD: QWA11R3O LEN(4) TYPE(BIN) DISP(24)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA11R3L LEN(2) TYPE(BIN) DISP(28)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA11R3N LEN(2) TYPE(BIN) DISP(30)     /*NUMBER OF DATA SECTIONS*/
*  /*        MAPPED BY DSNDQBAC                                      */
FLD: QWA11R4O LEN(4) TYPE(BIN) DISP(32)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA11R4L LEN(2) TYPE(BIN) DISP(36)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA11R4N LEN(2) TYPE(BIN) DISP(38)     /*NUMBER OF DATA SECTIONS*/
*  /*        MAPPED BY DSNDQTXA                                      */
FLD: QWA11R5O LEN(4) TYPE(BIN) DISP(40)  /*OFFSET TO THE DATA SECTION*/
FLD: QWA11R5L LEN(2) TYPE(BIN) DISP(44)  /*LENGTH OF THE DATA SECTION*/
FLD: QWA11R5N LEN(2) TYPE(BIN) DISP(46)     /*NUMBER OF DATA SECTIONS*/
***********************************************************************
*     DSNDQPKG - THIS IS A GENERAL INFORMATION SECTION FOR IFCID 239. *
*       IT GIVES INFORMATION ON THE NUMBER OF PACKAGES/DBRMS FOR WHICH*
*       DSNDQPAC DATA SECTIONS ARE TO BE EXTERNALIZED FOR THIS AGENT  *
*       AND WHICH DSNDQPAC SECTIONS APPEAR IN THIS IFCID 239 RECORD.  *
*                                                                     *
*     This data section is valid for IFCID 239 records related to a   *
*     rollup accounting record.                                       *
***********************************************************************
*
***********************************************************************
**** QPKG     DSECT         PACKAGE/DBRM ACCOUNTING OVERFLOW DATA       
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QPKG, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID239 AND QWA11R1N > 0)
*           NORMALIZE(QPKG, QWA11R1N)
***********************************************************************
COMP: QPKG_OFFSET =
           WHEN(SMF101_IFCID239 AND QWA11R1N > 0) ASSIGN(QWA11R1O)
           ELSE                                   ASSIGN(99999)
FLD: QPKG     DISP(0) LEN(6) OFFSET(QPKG_OFFSET)
                              /*PACKAGE/DBRM ACCOUNTING OVERFLOW DATA*/
FLD: QPKGPKGN TYPE(HALF) DISP(0)
                               /*NUMBER OF DSNDQPAC SECTIONS THAT ARE*/
*                             TO BE EXTERNALIZED FOR THIS AGENT.
*                             A MAXIMUM OF 10 DSNDQPAC DATA SECTIONS
*                             WILL APPEAR IN ANY ONE IFCID 239 RECORD.
FLD: QPKGPKNF TYPE(HALF) DISP(2)
                          /*NUMBER OF THE FIRST DSNDQPAC DATA SECTION*/
*                             IN THIS IFCID 239 RECORD.
FLD: QPKGPKNL TYPE(HALF) DISP(4)
                           /*NUMBER OF THE LAST DSNDQPAC DATA SECTION*/
*                             IN THIS IFCID 239 RECORD.
FLD: QPKGPKEN LEN(1) DISP(6)      /*END OF QPKG DSECT*/
*
***********************************************************************
**** QPAC     DSECT                                                     
***********************************************************************

***********************************************************************
* TO REPORT ON ALL OCCURRENCES OF QPAC, USE:
*    INPUT: SMF101
*           NORMWHEN(SMF101_IFCID239 AND QWA11R2N > 0)
*           NORMALIZE(QPAC, QWA11R2N)
***********************************************************************
COMP: QPAC_OFFSET =
           WHEN(SMF101_IFCID239 AND QWA11R2N > 0) ASSIGN(QWA11R2O +2)
           ELSE                                   ASSIGN(99999)
FLD: QPAC     DISP(0) LEN(402) OFFSET(QPAC_OFFSET)
*
*/********************************************************************/
*/*     PACKAGE LEVEL ACCOUNTING DATA MAPPING MACRO FOR              */
*/*       IFCIDs 0147, 148, AND 239.                                 */
*/*     UP TO 10 QPAC DATA SECTIONS MAY APPEAR IN ANY ONE 239 RECORD */
*/*     ONLY ONE QPAC SECTION, REPRESENTING THE CURRENT OR MOST      */
*/*       RECENTLY EXECUTED PACKAGE, WILL APPEAR IN IFCIDS 147       */
*/*       AND 148.                                                   */
*/*     ALL INFORMATION RELATES TO THE EXECUTION OF THE NAMED        */
*/*       PACKAGE BY THE AGENT IN QUESTION ONLY.                     */
*/*     A SEPARATE QPAC DATA SECTION IS GENERATED FOR EVERY LOCAL    */
*/*       PACKAGE EXECUTED.  A QPAC DATA SECTION WILL BE             */
*/*       GENERATED AT THE LOCAL AND REMOTE SITE FOR APPLICATIONS    */
*/*       THAT EXERCISE APPLICATION-DIRECTED PROTOCOLS TO EXECUTE A  */
*/*       PACKAGE AT A REMOTE SITE.                                  */
*/********************************************************************/
*
FLD: QPAC1    LEN(4) TYPE(BIN) DISP(0)
FLD: QPACRECN TYPE(HALF) DISP(0)  /*NUMBER OF THIS DSNDQPAC DATA*/
*                                       SECTION IN THE SERIES OF
*                                       DSNDQPAC DATA SECTIONS THAT
*                                       MAY BE EXTERNALIZED IN IFCID
*                                       239.  QWACPKGN AND QPKGPKGN
*                                       IDENTIFY THE NUMBER OF PACKAGES
*                                       FOR WHICH PACKAGE ACCOUNTING
*                                       HAS BEEN PERFORMED           */
FLD: QPACFLGS TYPE(HALF) DISP(2)  /*FLAGS*/
*
*/********************************************************************/
*/*     BIT MEANINGS FOR QPACFLGS.                                   */
*/********************************************************************/
COMP: QPACROLL = X'0001'          /*This is a rollup QPAC. See*/
COMP: QPACRUSM = X'0002'          /*This is a summary rollup QPAC.*/
COMP: QPACCLS8 = X'0004'          /*THERE IS NON ZERO ACCOUNTING*/
COMP: QPACCRNT = X'0008'          /*CURRENT OR MOST RECENTLY*/
COMP: QPACINSP = X'0010'          /*THIS PACKAGE WAS LOADED BY A*/
COMP: QPACCLS7 = X'0020'          /*THERE IS NON ZERO ACCOUNTING*/
COMP: QPACPAC = X'0040'           /*SUCCESSFUL AUTH CHECK WITHOUT*/
FLD: QPACPKNM LEN(60) DISP(4)     /*PACKAGE NAME*/
FLD: QPACLOCN LEN(16) DISP(4)     /*%U LOCATION NAME*/
*                                  /*   Truncated if QPACLOCN_Off^=0 */
FLD: QPACCOLN LEN(18) DISP(20)    /*%U PACKAGE COLLECTION ID*/
*                                  /*   Truncated if QPACCOLN_Off^=0 */
FLD: QPACPKID LEN(18) DISP(38)    /*%U PROGRAM NAME*/
*                                  /*   Truncated if QPACPKID_Off^=0 */
FLD: QPACCONT LEN(8) DISP(56)     /*CONSISTENCY TOKEN 64 BIT*/
*                                  /*UNSIGNED BINARY INTEGER         */
*
FLD: QPACA101 LEN(4) TYPE(BIN) DISP(64)
*
FLD: QPACSQLC LEN(4) TYPE(BIN) DISP(64)
                                  /*SQL REQUEST COUNT The number*/
*                                  /*of SQL statements issued.       */
*                                  /* NOTE - This field may          */
*                                  /* not equal the sum total of     */
*                                  /* all SQL statement counters in  */
*                                  /* the DSNDQXST data section.     */
*                                  /* This is because DSNDQXST does  */
*                                  /* not count all SQL statements   */
*                                  /* For example, DSNDQXST does     */
*                                  /* not include a counter for      */
*                                  /* COMMIT or ROLLBACK.            */
*
*/********************************************************************/
*/* NOTE: FIELDS DEFINED AS CHARACTER MAY CONTAIN HEX DATA           */
*/*                                                                  */
*/*NOTE - THE FOLLOWING TIMES INDICATE A LEVEL OF ACTIVITY FOR       */
*/*  THE THREAD ADDRESS SPACE DURING THE PERIOD OF TIME THE          */
*/*  AUTHORIZATION ID WAS ACTIVE AND EXECUTING UNDER THE PACKAGE     */
*/*  NAMED IN QPACPKNM.                                              */
*/*                                                                  */
*/********************************************************************/
*
*/********************************************************************/
*/*THE FOLLOWING VALUES THROUGH QPACARNA ARE CALCULATED IF ACCOUNTING*/
*/* CLASS 7 IS ACTIVE.  ACCOUNTING CLASS 7 REPRESENTS THE AMOUNT OF  */
*/* TIME SPENT PROCESSING A PARTICULAR PACKAGE. THIS IS              */
*/* ENTRY TO DB2 TO EXECUTE A PACKAGE TO EXIT FROM DB2.              */
*/* IT IS POSSIBLE FOR A BEGIN ELAPSED OR CPU TIME TO BE 0 AND THE   */
*/* END ELAPSED OR CPU TIME TO BE NON-ZERO.  THIS MAY OCCUR WHEN     */
*/* A PACKAGE SWITCH OCCURS.  THE END ELAPSED TIME WILL              */
*/* REPRESENT THE TIME AT WHICH PROCESSING LAST EXITED DB2 WHILE     */
*/* PROCESSING THIS PACKAGE.  THE BEGIN TIMES OF THE PACKAGE         */
*/* THAT PROCESSING SWITCHES FROM ARE SET TO 0.                      */
*/********************************************************************/
FLD: QPACSCB  TYPE(STCKTIME) DISP(68)
                              /*STORE CLOCK VALUE AT ENTRY TO DB2 FOR*/
*                        /*   MOST RECENT EXECUTION OF THIS PACKAGE  */
FLD: QPACSCE  TYPE(STCKTIME) DISP(76)
                           /*STORE CLOCK VALUE AT EXIT FROM DB2 AFTER*/
*                        /*   MOST RECENT EXECUTION OF THIS PACKAGE  */
FLD: QPACSCT  TYPE(STCKTIME) DISP(84)
                            /*TOTAL ELAPSED TIME SPENT PROCESSING ALL*/
*                        /*   EXECUTIONS OF THIS PACKAGE             */
FLD: QPACBJST TYPE(STCKTIME) DISP(92)
                              /*CPU time at entry to DB2 for the most*/
*                        /* recent execution of this package.        */
*                        /* This time does not include CPU consumed  */
*                        /* on an IBM specialty engine.              */
FLD: QPACEJST TYPE(STCKTIME) DISP(100)
                             /*CPU time at exit from DB2 fro the most*/
*                        /* recent execution of this package.        */
*                        /* This time does not include CPU consumed  */
*                        /* on an IBM specialty engine.              */
FLD: QPACTJST TYPE(STCKTIME) DISP(108)
                          /*Total CPU time for all executions of this*/
*                        /* package.  This time does not include CPU */
*                        /* consumed on an IBM specialty engine.     */
FLD: QPACARNA LEN(4) TYPE(BIN) DISP(116)
                             /*NUMBER OF DB2 ENTRY OR EXIT EVENTS PRO*/
*                        /*   CESSED WHILE EXECUTING THIS PACKAGE    */
*
*
*/********************************************************************/
*/* THE FOLLOWING VALUES THROUGH QPACARNH ARE CALCULATED IF THE      */
*/*  OPTIONAL ACCOUNTING CLASS 8 IS ACTIVE.  ACCOUNTING CLASS 8      */
*/*  MAINTAINS TIME SPENT WAITING FOR RESOURCES IN DB2 WHILE         */
*/*  EXECUTING THIS PACKAGE.                                         */
*/* SUSPENSIONS WHICH OCCUR AFTER ENTRY TO DB2 BUT BEFORE IT IS      */
*/*  DETERMINED WHICH PACKAGE IS TO BE EXECUTED ARE NOT ATTRIBUTED   */
*/*  TO ANY PACKAGE, EVEN THOUGH THE SAME TIME PERIOD IS ATTRIBUTED  */
*/*  TO THE EXECUTED PACKAGE FOR ELAPSED AND CPU TIME PURPOSES.      */
*/********************************************************************/
*
FLD: QPACARNE LEN(4) TYPE(BIN) DISP(120)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                        /*   WAITS FOR I/O UNDER THIS THREAD WHILE  */
*                        /*   EXECUTING THIS PACKAGE                 */
*
*/********************************************************************/
*/*THE FOLLOWING TWO VALUES ARE CALCULATED FOR THREADS BY TAKING THE */
*/* STCK TIME ON ENTRY TO EVENT WAIT AND SUBTRACTING STCK ON EXIT    */
*/* RESUME FROM THE EVENT.                                           */
*/********************************************************************/
*
FLD: QPACAWTI TYPE(STCKTIME) DISP(124)
                              /*ACCUMULATED I/O ELAPSED WAIT TIME FOR*/
*                        /*   I/O DONE UNDER THIS THREAD WHILE       */
*                        /*   EXECUTING THIS PACKAGE                 */
FLD: QPACAWTL TYPE(STCKTIME) DISP(132)
                            /*ACCUMULATED LOCK ELAPSED WAIT TIME THAT*/
*                        /*   OCCURRED WHILE EXECUTING THIS          */
*                        /*   PACKAGE                                */
*
*/********************************************************************/
*/*THE FOLLOWING FOUR VALUES ARE CALCULATED FOR THREADS BY TAKING    */
*/* THE STCK TIME ON ENTRY TO EVENT WAIT AND SUBTRACTING STCK ON EXIT*/
*/* RESUME FROM THE EVENT.                                           */
*/********************************************************************/
*
FLD: QPACAWTR TYPE(STCKTIME) DISP(140)
                            /*ACCUMULATED WAIT TIME FOR READ I/O THAT*/
*                        /*   IS DONE UNDER A THREAD OTHER THAN THIS */
*                        /*   ONE WHILE EXECUTING THIS PACKAGE       */
FLD: QPACAWTW TYPE(STCKTIME) DISP(148)
                           /*ACCUMULATED WAIT TIME FOR WRITE I/O THAT*/
*                        /*   IS DONE UNDER A THREAD OTHER THAN THIS */
*                        /*   ONE WHILE EXECUTING THIS PACKAGE       */
FLD: QPACAWTE TYPE(STCKTIME) DISP(156)
                           /*ACCUMULATED WAIT TIME DUE TO SYNCHRONOUS*/
*                        /*   EXECUTION UNIT SWITCH TO DB2 SERVICES  */
*                        /*   FROM THIS THREAD WHILE EXECUTING THIS  */
*                        /*   PACKAGE.  THE FOLLOWING DB2            */
*                        /*   SERVICE WAITS ARE INCLUDED IN THIS     */
*                        /*   FIELD:                                 */
*                        /*    - OPEN/CLOSE DATA SET                 */
*                        /*    - SYSLGRNG UPDATE                     */
*                        /*    - HSM RECALL DATA SET                 */
*                        /*    - DATASPACE MANAGER SERVICES          */
*                        /*    - DEFINE DATA SET                     */
*                        /*    - EXTEND DATA SET                     */
*                        /*    - DELETE DATA SET                     */
*                        /* NOTE:                                    */
*                        /*   - THERE IS NO OVERLAP BETWEEN THE      */
*                        /*     ELAPSED TIME REPORTED IN THIS FIELD  */
*                        /*     AND THE OTHER CLASS 8 ELAPSED TIMES. */
*                        /*   - THERE IS NO OVERLAP BETWEEN THE      */
*                        /*     ELAPSED TIME REPORTED IN THIS FIELD  */
*                        /*     AND THE ELAPSED TIME REPORTED IN     */
*                        /*     QLACCPUL FOR THREADS WITH DISTRIBUTED*/
*                        /*     ACTIVITY.                            */
FLD: QPACALOG TYPE(STCKTIME) DISP(164)
                            /*ACCUMULATED WAIT TIME DUE TO PROCESSING*/
*                        /*   OF ARCHIVE LOG MODE(QUIESCE) COMMANDS  */
*                        /*   WHILE EXECUTING THIS PACKAGE.          */
*                        /*  NOTE:                                   */
*                        /*    THIS NUMBER REPRESENTS THE AMOUNT OF  */
*                        /*    TIME THAT AN INDIVIDUAL THREAD WAS    */
*                        /*    SUSPENDED DUE TO AN ARCHIVE LOG MODE  */
*                        /*    (QUIESCE) COMMAND AND NOT THE TIME    */
*                        /*    THAT IT TOOK FOR THE ENTIRE COMMAND TO*/
*                        /*    COMPLETE                              */
FLD: QPACARNL LEN(4) TYPE(BIN) DISP(172)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                        /*  WAITS ON LOCKS WHILE EXECUTING THIS     */
*                        /*  PACKAGE.                                */
FLD: QPACARNR LEN(4) TYPE(BIN) DISP(176)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                        /*  WAITS FOR READ I/O UNDER ANOTHER THREAD */
*                        /*  WHILE EXECUTING THIS PACKAGE            */
FLD: QPACARNW LEN(4) TYPE(BIN) DISP(180)
                          /*NUMBER OF WAIT TRACE EVENTS PROCESSED FOR*/
*                        /*  WAITS FOR WRITE I/O UNDER ANOTHER THREAD*/
*                        /*  WHILE EXECUTING THIS PACKAGE            */
FLD: QPACARNS LEN(4) TYPE(BIN) DISP(184)
                              /*NUMBER OF WAIT TRACE EVENTS PROCESSED*/
*                        /*  FOR WAITS FOR SYNCHRONOUS EXECUTION UNIT*/
*                        /*  SWITCHING TO DB2 SERVICE TASKS WHILE    */
*                        /*  EXECUTING THIS PACKAGE                  */
FLD: QPACALCT LEN(4) TYPE(BIN) DISP(188)
                            /*NUMBER OF SUSPENSIONS DUE TO PROCESSING*/
*                        /*   OF ARCHIVE LOG MODE(QUIESCE) COMMANDS  */
*                        /*   WHILE EXECUTING THIS PACKAGE           */
*
FLD: QPAC2    LEN(4) TYPE(BIN) DISP(192)
*
FLD: QPACARND LEN(4) TYPE(BIN) DISP(192)
                              /*Number of wait trace events processed*/
*                        /*   for waits for a drain lock while       */
*                        /*   executing this package                 */
FLD: QPACAWDR TYPE(STCKTIME) DISP(196)
                             /*Accumulated wait time for a drain lock*/
*                        /*   while executing this package           */
FLD: QPACAWCL TYPE(STCKTIME) DISP(204)
                             /*Accumulated wait time for a drain when*/
*                        /*   waiting for claims to be released      */
*                        /*   while executing this package           */
FLD: QPACARNC LEN(4) TYPE(BIN) DISP(212)
                              /*Number of wait trace events processed*/
*                        /*   for suspensions to wait for claims to  */
*                        /*   be released while executing this       */
*                        /*   package                                */
FLD: QPACAWAR TYPE(STCKTIME) DISP(216)   /*Accumulated wait time for:*/
*                        /*  - archive reads                         */
*                        /*  - active reads                          */
*                        /*  - active log prefetch reads             */
*                        /* while executing this package             */
FLD: QPACANAR LEN(4) TYPE(BIN) DISP(224)
                              /*Number of wait trace events processed*/
*                        /* for:                                     */
*                        /*  - archive reads                         */
*                        /*  - active reads                          */
*                        /*  - active log prefetch reads             */
*                        /* while executing this package             */
FLD: QPACAWTP TYPE(STCKTIME) DISP(228)
                            /*Accumulated wait time due to page latch*/
*                        /*   contention while executing this        */
*                        /*   package                                */
FLD: QPACARNH LEN(4) TYPE(BIN) DISP(236)
                              /*Number of wait trace events processed*/
*                        /* for page latch contention while          */
*                        /*   executing this package                 */
*/*********************************************************************
*  The following values through QPACARNJ are calculated if
*    Accounting Class 8 is started and if DB2 is a member of a DB2
*    data sharing group.
**********************************************************************/
*
FLD: QPACA261 LEN(4) TYPE(BIN) DISP(240)
FLD: QPACAWTG TYPE(STCKTIME) DISP(240)
                            /*Accumulated wait time due to sending of*/
*                           messages within the DB2 data sharing
*                           group                                   */
FLD: QPACAWTJ TYPE(STCKTIME) DISP(248)
                                /*Accumulated wait time due to global*/
*                           contention for parent L-locks.  Global
*                           contention occurs when inter-system
*                           communication is required to resolve an
*                           IRLM Lock or Change request.  QPACAWTL
*                           contains the wait time due to local
*                           contention.  Local contention does not
*                           require inter-system communciation - it
*                           can be resolved by the local subsystem. */
FLD: QPACARNG LEN(4) TYPE(BIN) DISP(256)
                              /*Number of wait trace events processed*/
*                           for messages within the DB2 data sharing
*                           group                                   */
FLD: QPACARNJ LEN(4) TYPE(BIN) DISP(260)
                              /*Number of wait trace events processed*/
*                           for waits for global lock contention for
*                           parent L-locks                          */
***********************************************************************
FLD: QPACA302 LEN(1)
FLD: QPACSPNS LEN(4) TYPE(BIN) DISP(276)
                           /*The number of stored procedures executed*/
*
FLD: QPACA303 LEN(1)
FLD: QPACUDNU LEN(4) TYPE(BIN) DISP(288)
                         /*Number of user defined functions scheduled*/
FLD: QPACA304 LEN(1)
FLD: QPACASCH LEN(8) DISP(292)    /*%U Nested activity schema name*/
*                        /*   Truncated if QPACASCH_Off^=0           */
FLD: QPACAANM LEN(18) DISP(300)   /*%U Name of activity*/
*                        /*   Truncated if QPACAANM_Off^=0           */
FLD: QPACAAFG LEN(2) DISP(318)    /*Activity flag*/
*                        /* 01 - stored procedure                    */
*                        /* 02 - user defined function               */
*                        /* 03 - trigger executing                   */
*                        /* 04 - native SQL stored procedure         */
*                        /* 05 - non-inline UDF                      */
*/********************************************************************/
*/*  Additional counters for global wait times. These counters       */
*/*  break out values that were previously all contained in          */
*/*  QPACAWTJ and QPACARNJ.                                          */
*/********************************************************************/
FLD: QPACA305 LEN(1)
FLD: QPACAWTK TYPE(STCKTIME) DISP(320)
                                /*Accumulated wait time due to global*/
*                           contention for child L-locks.            */
FLD: QPACAWTM TYPE(STCKTIME) DISP(328)
                                /*Accumulated wait time due to global*/
*                           contention for other L-locks             */
FLD: QPACAWTN TYPE(STCKTIME) DISP(336)
                                /*Accumulated wait time due to global*/
*                           contention for pageset/partition P-locks */
FLD: QPACAWTO TYPE(STCKTIME) DISP(344)
                                /*Accumulated wait time due to global*/
*                           contention for page P-locks              */
FLD: QPACAWTQ TYPE(STCKTIME) DISP(352)
                                /*Accumulated wait time due to global*/
*                           contention for other P-locks             */
FLD: QPACARNK LEN(4) TYPE(BIN) DISP(360)
                              /*Number of wait trace events processed*/
*                           for waits for global contention for
*                           child L-locks                            */
FLD: QPACARNM LEN(4) TYPE(BIN) DISP(364)
                              /*Number of wait trace events processed*/
*                           for waits for global contention for
*                           other L-locks                            */
FLD: QPACARNN LEN(4) TYPE(BIN) DISP(368)
                              /*Number of wait trace events processed*/
*                           for waits for global contention for
*                           pageset/partition P-locks                */
FLD: QPACARNO LEN(4) TYPE(BIN) DISP(372)
                              /*Number of wait trace events processed*/
*                           for waits for global contention for
*                           page P-locks                             */
FLD: QPACARNQ LEN(4) TYPE(BIN) DISP(376)
                              /*Number of wait trace events processed*/
*                           for waits for global contention for
*                           other P-locks                            */
*
FLD: QPACLOCN_OFF TYPE(HALF) DISP(380)          /*Offset from QPAC to*/
*                                  /*   LOCATION NAME                */
*                                  /*   If QPACLOCN truncated        */
FLD: QPACCOLN_OFF TYPE(HALF) DISP(382)          /*Offset from QPAC to*/
*                                  /*   PACKAGE COLLECTION ID        */
*                                  /*   If QPACCOLN truncated        */
FLD: QPACPKID_OFF TYPE(HALF) DISP(384)          /*Offset from QPAC to*/
*                                  /*   PROGRAM NAME                 */
*                                  /*   If QPACPKID truncated        */
FLD: QPACASCH_OFF TYPE(HALF) DISP(386)          /*Offset from QPAC to*/
*                                  /*   Nested activity schema name  */
*                                  /*   If QPACASCH truncated        */
FLD: QPACAANM_OFF TYPE(HALF) DISP(388)          /*Offset from QPAC to*/
*                                  /*   Name of activity             */
*                                  /*   If QPACASCH truncated        */
FLD: QPACSWITCH TYPE(HALF) DISP(390)    /*Number of times package was*/
*                                  /* invoked from a different       */
*                                  /* package. For the first package */
*                                  /* run by an application, the     */
*                                  /* initial call counts as a       */
*                                  /* package switch. If this        */
*                                  /* package called a nested package*/
*                                  /* (i.e., a trigger, UDF, or      */
*                                  /* stored procedure), a switch    */
*                                  /* will NOT be counted upon return*/
*                                  /* from such a package.           */
FLD: QPACZIIP LEN(1)
FLD: QPACCLS7_ZIIP TYPE(STCKTIME) DISP(392)
                          /*Total CPU time for all executions of this*/
*                        /* package consumed on an IBM specialt      */
*                        /* engine                                   */
FLD: QPACA309 LEN(1)
FLD: QPACALBC LEN(4) TYPE(BIN) DISP(400)
                              /*Number of wait trace events processed*/
*                        /* for waits for TCP/IP LOB or XML          */
*                        /* materialization while executing this     */
*                        /* package                                  */
FLD: QPACALBW TYPE(STCKTIME) DISP(404)
                               /*Accumulated wait time for TCP/IP LOB*/
*                        /* or XML materialization while executing   */
*                        /* this package                             */
FLD: QPACAWLH TYPE(STCKTIME) DISP(412)
                            /*Accumulated latch elapsed wait time for*/
*                        /* latch suspensions that occurred while    */
*                        /* executing this package                   */
FLD: QPACANLH LEN(4) TYPE(BIN) DISP(420)
                              /*Number of wait trace events processed*/
*                        /* for waits on latches while executing     */
*                        /* this package                             */
FLD: QPACA310 LEN(1)
FLD: QPACRLNU LEN(4) TYPE(BIN) DISP(424)
                           /*Number of threads to roll data into this*/
*                        /* QPAC data section. Non-rollup QPACs will */
*                        /* have a value of 1 and rollup QPACs will  */
*                        /* have a value of 1 or more.               */
FLD: QPACEND  LEN(1) DISP(428)
*
*
*
***********************************************************************
**** QPACLOCN_D   DSECT            /* Use if QPACLOCN_Off^=0         */ 
***********************************************************************

COMP: QPACLOCN_D_OFFSET = 
           WHEN(QPAC_OFFSET<>99999 AND QPACLOCN_OFF<>0)
                                   ASSIGN(QPAC_OFFSET + QPACLOCN_OFF)
           ELSE                    ASSIGN(99999)
FLD: QPACLOCN_D DISP(0) LEN(1) OFFSET(QPACLOCN_D_OFFSET)
                                  /*Use if QPACLOCN_Off^ 0*/
FLD: QPACLOCN_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QPACLOCN_VAR LEN(128) DISP(2)/*%U LOCATION NAME*/
*
*
*
***********************************************************************
**** QPACCOLN_D   DSECT            /* Use if QPACCOLN_Off^=0         */ 
***********************************************************************

COMP: QPACCOLN_D_OFFSET = 
           WHEN(QPAC_OFFSET<>99999 AND QPACCOLN_OFF<>0)
                                   ASSIGN(QPAC_OFFSET + QPACCOLN_OFF)
           ELSE                    ASSIGN(99999)
FLD: QPACCOLN_D DISP(0) LEN(1) OFFSET(QPACCOLN_D_OFFSET)
                                  /*Use if QPACCOLN_Off^ 0*/
FLD: QPACCOLN_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QPACCOLN_VAR LEN(128) DISP(2)/*%U PACKAGE COLLECTION ID*/
*
*
***********************************************************************
**** QPACPKID_D   DSECT            /* Use if QPACPKID_Off^=0         */ 
***********************************************************************

COMP: QPACPKID_D_OFFSET = 
           WHEN(QPAC_OFFSET<>99999 AND QPACPKID_OFF<>0)
                                   ASSIGN(QPAC_OFFSET + QPACPKID_OFF)
           ELSE                    ASSIGN(99999)
FLD: QPACPKID_D DISP(0) LEN(1) OFFSET(QPACPKID_D_OFFSET)
                                  /*Use if QPACPKID_Off^ 0*/
FLD: QPACPKID_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QPACPKID_VAR LEN(128) DISP(2)/*%U PROGRAM NAME*/
*
*
***********************************************************************
**** QPACASCH_D   DSECT            /* Use if QPACASCH_Off^=0         */ 
***********************************************************************

COMP: QPACASCH_D_OFFSET = 
           WHEN(QPAC_OFFSET<>99999 AND QPACASCH_OFF<>0)
                                   ASSIGN(QPAC_OFFSET + QPACASCH_OFF)
           ELSE                    ASSIGN(99999)
FLD: QPACASCH_D DISP(0) LEN(1) OFFSET(QPACASCH_D_OFFSET)
                                  /*Use if QPACASCH_Off^ 0*/
FLD: QPACASCH_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QPACASCH_VAR LEN(128) DISP(2)/*%U Nested activity schema name*/
*
*
***********************************************************************
**** QPACAANM_D   DSECT            /* Use if QPACLOCN_Off^=0         */ 
***********************************************************************

COMP: QPACAANM_D_OFFSET = 
           WHEN(QPAC_OFFSET<>99999 AND QPACAANM_OFF<>0)
                                   ASSIGN(QPAC_OFFSET + QPACAANM_OFF)
           ELSE                    ASSIGN(99999)
FLD: QPACAANM_D DISP(0) LEN(1) OFFSET(QPACAANM_D_OFFSET)
                                  /*Use if QPACLOCN_Off^ 0*/
FLD: QPACAANM_LEN TYPE(HALF) DISP(0)  /*Length of the following field*/
FLD: QPACAANM_VAR LEN(128) DISP(2)/*%U Name of activity*/
*
*                    SCC STATISTICS DATA FOR TYPE 100 SUBTYPE 1 RECORD
*                    SCC ACCOUNTING DATA FOR TYPE 101 SUBTYPE 0 RECORD
***********************************************************************
**** DSNDQXPK DSECT                                                     
***********************************************************************

COMP: QXPK_OFFSET =
           WHEN(QWHSIID = 239 AND QWA11R5N > 0) ASSIGN(QWA11R5O)
           ELSE                                 ASSIGN(99999)
FLD: DSNDQXPK DISP(0) LEN(1) OFFSET(QXPK_OFFSET)
FLD: QXPK     LEN(8) DISP(0)
FLD: QPSELECT LEN(4) TYPE(BIN) DISP(0)                 /*# of SELECTS*/
FLD: QPINSRT  LEN(4) TYPE(BIN) DISP(4)                 /*# of INSERTS*/
FLD: QPUPDTE  LEN(4) TYPE(BIN) DISP(8)                 /*# of UPDATES*/
FLD: QPDELET  LEN(4) TYPE(BIN) DISP(12)                /*# of DELETES*/
FLD: QPDESC   LEN(4) TYPE(BIN) DISP(16)              /*# of DESCRIBES*/
FLD: QPPREP   LEN(4) TYPE(BIN) DISP(20)               /*# of PREPARES*/
FLD: QPOPEN   LEN(4) TYPE(BIN) DISP(24)                  /*# of OPENS*/
FLD: QPCLOSE  LEN(4) TYPE(BIN) DISP(28)                 /*# of CLOSES*/
FLD: QPFETCH  LEN(4) TYPE(BIN) DISP(32)                 /*# of FETCHS*/
FLD: QPLOCK   LEN(4) TYPE(BIN) DISP(36)            /*# of LOCK TABLES*/
FLD: QPCALL   LEN(4) TYPE(BIN) DISP(40)    /*# of SQL CALL statements*/
FLD: QPPKEND  LEN(1) DISP(44)
FLD: SMF101_END LEN(1) OFFSET(0)

 


 

Sample Report from SMF 101 Records
showing Correlation, Distribution and Data Sharing Info
for records with specified DB2PLANs


The sample SMF report below was created with
Spectrum SMF Writer, the low-cost 4GL SMF report writer. It reads as input the SMF file and selects just the type 101 (DB2 Accounting) records with IFCID 3 (accounting trace records). (See SMF 101 record layout.)

We further select on the value in the DB2PLAN field to get just the trace records for the plan we are interested in.

We then print a report showing various data fields from the SMF 101 records for that plan. We leave the report in SMF log time order.

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: HDGSEP('/') /* CHANGE DEFAULT SEPERATOR CHAR */

INPUT:  SMF101

INC: SM101RTY = 101 AND QWHSIID =3 /* IFCID 003 */
     AND QWHCPLAN = 'MAJSERVR'

COL: SM101DTE SM101TME
     QWHCCV('CORRELATION')
     QWHCCN('CONNECTION')
     QWHCPLAN('DB2PLAN')
     QWHCOPID('OPERATOR/ID')
     QWHDRQNM('REQUESTOR/LOCATION')
     QWHADSGN('SHARING/GROUP')
     QWHAMEMN('MEMBER/NAME')

TITLE: /'DB2 ACCOUNTING INFO FOR DB2PLAN: MAJSERVR' / #DATE ' ' #TIME

 

Produce This SMF Report:

 
                            DB2 ACCOUNTING INFO FOR DB2PLAN: MAJSERVR         07/21/09    9:23 AM

                                                      OPERATO    REQUESTOR     SHARING   MEMBER 
SM101DTE  SM101TME   CORRELATION  CONNECTION DB2PLAN     ID        LOCATION      GROUP     NAME  

09/23/08 10:40:03.28 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:40:05.26 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:13.65 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:14.98 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:20.91 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:21.99 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:40:25.47 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.25.37    DSN9KJT  DBT4
09/23/08 10:40:26.94 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:34.42 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:35.11 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:41.43 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:46.74 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:48.39 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:40:53.43 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.25.37    DSN9KJT  DBT4
09/23/08 10:40:53.44 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:40:56.49 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:03.01 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:10.36 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:13.04 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:41:17.30 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:24.22 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.25.37    DSN9KJT  DBT4
09/23/08 10:41:25.02 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:41:25.09 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:25.41 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:31.93 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:41:33.77 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:39.88 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:45.52 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:48.58 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:41:52.39 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.25.37    DSN9KJT  DBT4
09/23/08 10:41:54.54 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:01.84 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:03.32 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:42:07.97 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:15.72 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:16.88 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:18.91 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.25.37    DSN9KJT  DBT4
09/23/08 10:42:24.84 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:27.82 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:42:28.41 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:42:33.09 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:38.56 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:44.68 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:45.82 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:48.66 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.25.37    DSN9KJT  DBT4
09/23/08 10:42:48.87 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:42:52.25 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:42:57.25 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:43:05.92 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:43:07.10 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:43:12.74 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:43:12.99 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.25.37    DSN9KJT  DBT4
09/23/08 10:43:20.73 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4
09/23/08 10:43:23.18 db2trbWebSph  SERVER    MAJSERVR SETUP    192.168.43.100   DSN9KJT  DBT4
09/23/08 10:43:26.03 db2trbNon-de  SERVER    MAJSERVR SETUP    192.168.24.30    DSN9KJT  DBT4

...

 


 

Sample Report from SMF 101 Records
showing SQL Statement Counts


The sample SMF report below was created with Spectrum SMF Writer, the low-cost 4GL SMF report writer. It reads as input the SMF file and selects just the type 101 DB2 accounting records. (See SMF 101 record layout.) It then prints a report line for each DB2 accounting record written. The report shows statistical information about those DB2 jobs, including a count of the number of DB2 statements executed by each one.

All of this with just a dozen 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: PC   /* FORMAT "REPORT" AS A PC EXPORT FILE */
INPUT:  SMF101V2  LIST(NO )
            NORMWHEN((SMF101_IFCID239 AND QWA11R2N > 0) OR
                     (SMF101_IFCID3   AND QWA01R8N > 0))
            NORMALIZE(QPAC_SECTION, QPAC_NUM)

INC: (SM101RTY = 101 AND (QWHSIID=239 OR QWHSIID=3))

COMPUTE: CORRELATION_ID =  #SUBSTR(QWHCCV,1,8)
COMPUTE: SORT_FIELD = QWHCPLAN + ' ' + CORRELATION_ID + ' ' + QPACPKID

COMPUTE: NUM_QPACTJST = #MAKENUM(QPACTJST)
COMPUTE: NUM_QPACSCT  = #MAKENUM(QPACSCT)
COLUMNS:            SORT_FIELD('PLAN,CORRID,PCK')
                    NUM_QPACTJST(PIC'9999999999.999999')
                    NUM_QPACSCT(PIC'9999999999.999999')
                    QPACSQLC(PIC'99999999999')
                    SM101TME
                    SM101DTE

 

Produce This SMF Report:


" ","NUM","NUM"," "," "," "
"PLAN,CORRID,PCK","QPACTJST","QPACSCT","QPACSQLC","SM101TME","SM101DTE"
" "," "," "," "," "," "
"DISTSERV perl     SQLLF000          ",0000000000.001705,0000000000.003016,00000000007,"20:46:33.18","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.000490,0000000000.000649,00000000007,"20:46:33.18","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.000489,0000000000.000755,00000000015,"20:46:33.19","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.000367,0000000000.000652,00000000007,"20:46:33.31","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.001659,0000000000.002048,00000000006,"20:46:33.33","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.001572,0000000000.004666,00000000006,"20:46:33.35","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.000339,0000000000.000900,00000000007,"20:46:33.35","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.001660,0000000000.002735,00000000007,"20:46:33.36","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.000477,0000000000.000967,00000000007,"20:46:33.37","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.000423,0000000000.000435,00000000015,"20:46:33.39","10/13/09"
"ISPP0001 POOL#4MR OMSX1102          ",0000000000.000203,0000000000.001711,00000000001,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR RFSX0186          ",0000000000.000359,0000000000.034634,00000000001,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR RFSX0079          ",0000000000.000110,0000000000.000112,00000000002,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OMSX1105          ",0000000000.000323,0000000000.002370,00000000002,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OMSX0073          ",0000000000.000611,0000000000.002070,00000000002,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OMSX1108          ",0000000000.001351,0000000000.037147,00000000024,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OMSX0097          ",0000000000.011409,0000000000.167797,00000000042,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OR030F18          ",0000000000.003451,0000000000.042930,00000000042,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OMSX1100          ",0000000000.000310,0000000000.025603,00000000001,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OMSX1106          ",0000000000.001146,0000000000.051818,00000000023,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OMSX0912          ",0000000000.004310,0000000000.004402,00000000080,"20:46:33.45","10/13/09"
"ISPP0001 POOL#4MR OMSX0093          ",0000000000.002879,0000000000.002935,00000000036,"20:46:33.45","10/13/09"
"ISPP0001 POOL#6XZ RFSX0079          ",0000000000.000063,0000000000.000063,00000000001,"20:46:33.47","10/13/09"
"ISPP0001 POOL#6XZ OMSX0504          ",0000000000.000227,0000000000.000229,00000000001,"20:46:33.47","10/13/09"
"ISPP0001 POOL#6XZ RFSX0186          ",0000000000.000223,0000000000.004857,00000000001,"20:46:33.47","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.000389,0000000000.002541,00000000007,"20:46:33.51","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.001626,0000000000.008175,00000000006,"20:46:33.54","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.001578,0000000000.002004,00000000006,"20:46:33.54","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.000322,0000000000.000339,00000000007,"20:46:33.55","10/13/09"
"DISTSERV perl     SQLLF000          ",0000000000.001650,0000000000.005157,00000000007,"20:46:33.56","10/13/09"

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