IBM Support

PI51554: IBM NEW FUNCTION APAR FOR AOC 11.2 - PROVIDE FUNCTION TO VERIFY OBJECT STRUCTURE PRIOR TO PERFORMING AN ANALYZE IN CM BATCH.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • Provide function to verify object structure prior to
    performing an Analyze in CM Batch.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of the DB2 Administration Tool for     *
    *                 z/OS.                                        *
    ****************************************************************
    * PROBLEM DESCRIPTION: 1 - User wants to be able to verify     *
    *                      that the attributes for objects being   *
    *                      compared are valid on their system.     *
    *                                                              *
    *                      2 - User wants any incorrect            *
    *                      attribute values to be reported and     *
    *                      the process stopped if error sare       *
    *                      found.                                  *
    *                                                              *
    *                      The verification of attributes          *
    *                      will be done in masking and the         *
    *                      calling function will continue          *
    *                      processing so all verification          *
    *                      errors get reported.  When all          *
    *                      objects have been processed,            *
    *                      the calling function will stop          *
    *                      the process if any verification         *
    *                      errors are encountered.                 *
    *                      Verification errors will                *
    *                      be written to a separate DD             *
    *                      name called VALOUT and                  *
    *                      will be SYSOUT.  If the calling         *
    *                      function is done in TSO mode,           *
    *                      please use TSO ISRDDN to                *
    *                      find the VALOUT DD to see the           *
    *                      results.   The masking dataset          *
    *                      can have both existing masks /          *
    *                      overwrites and the new verification     *
    *                      masks. Both will be processed by        *
    *                      the masking facility. Syntax            *
    *                      errors will be issued if syntax for     *
    *                      VER masks is not correct.  Also,        *
    *                      semantic errors like the ones           *
    *                      caught by overwrite mask entries        *
    *                      will be caught ( i.e. Yes / no          *
    *                      checking, valid numeric values ).       *
    *                                                              *
    *                      A new syntax will be introduced         *
    *                      to allow for a VER request for          *
    *                      a overwrite mask type.  The new         *
    *                      syntax is shown below:                  *
    *                      is shown below:                         *
    *                                                              *
    *                      VER,field:verification_operator,        *
    *                      verification_values,                    *
    *                      RC=verification_rc                      *
    *                                                              *
    *                         or                                   *
    *                                                              *
    *                      VER,field:REXX(execname,                *
    *                      parm1,...)                              *
    *                                                              *
    *                      Note:  The REXX EXEC must be            *
    *                      built so that it returns two items      *
    *                      in the return string.  The first        *
    *                      2 characters will be the return         *
    *                      code value ( e.g. 00, 08, 12 )          *
    *                      followed by a colon, and the            *
    *                      rest of the string is the error         *
    *                      message if the REXX EXEC                *
    *                      finds an error in verification.         *
    *                      The remaining string will be            *
    *                      blank if no errors are found in         *
    *                      verification. ( e.g.  '08:A             *
    *                      segsize of 12 was found when            *
    *                      verifying segsize follow this           *
    *                      expression, EQ,4' )                     *
    *                                                              *
    *                      Where                                   *
    *                                                              *
    *                      VER -  Begins a verification            *
    *                             mask                             *
    *                      Field - Attribute to verify             *
    *                              'Field' has to be an            *
    *                              overwrite mask name             *
    *                              or OBJNAME for name             *
    *                              verification                    *
    *                      operator - One of the following         *
    *                                 operators:                   *
    *                                                              *
    *                          EQ - equal comparison               *
    *                          NE - Not equal comparison           *
    *                          LT - Less than comparison           *
    *                          GT - Greater than comparison        *
    *                          LIST - list of value                *
    *                          RANGE - greater than/equal          *
    *                          first value and less than/equal     *
    *                          second value                        *
    *                          values -  values being compared     *
    *                          for the field                       *
    *                          rc - One of the following return    *
    *                               codes:                         *
    *                                                              *
    *                          12 - Fatal, processing will fail    *
    *                           8 - Severe, processing will fail   *
    *                           6 - Error, processing will fail    *
    *                           4 - Warning, only will fail if     *
    *                               no exceptions are granted      *
    *                           0 - OK                             *
    *                                                              *
    *                         REXX  - run REXX exec provided to    *
    *                                 validate the field           *
    *                         Parm  - Parameters passed            *
    *                                 to the REXX exec             *
    *                                 (same as for overwrites)     *
    *                                                              *
    *                      NOTE:  Field has to be an overwrite     *
    *                      mask except for one exception, new      *
    *                      overwrite, OBJNAME.  OBJNAME is         *
    *                      described below with special rules.     *
    *                                                              *
    *                      Special overwrite named OBJNAME,        *
    *                      which can verify both object name and   *
    *                      object schema, is created so a REXX     *
    *                      exit can be called to verify objects.   *
    *                      This overwrite can only use the REXX    *
    *                      format.  An example of the syntax for   *
    *                      this OBJNAME is:                        *
    *                                                              *
    *                         VER,OBJNAME:REXX(execname)           *
    *                                                              *
    *                      The purpose of the OBJNAME REXX exit    *
    *                      is to validate the object name and /    *
    *                      or object schema.                       *
    *                                                              *
    *                      The EXEC will be called for all primary *
    *                      object names ( SG,DB,TS,TB,IX,DT,       *
    *                      FU,SP,SQ,... ) with three parameters:   *
    *                                                              *
    *                      - object type                           *
    *                      - object qualifier ( blank for objects  *
    *                        without a qualifier )                 *
    *                      - object name                           *
    *                                                              *
    *                      The user can use objtype, objqual and   *
    *                      objname as the variable name for        *
    *                      these three parameters in their EXEC.   *
    *                      A primary object name is what is        *
    *                      considered to be the primary key of     *
    *                      the object. i.e., for a table the exit  *
    *                      will be called with TB and what         *
    *                      corresponds to systables.creator and    *
    *                      systables.name, and not be called with  *
    *                      object type DB systables.dbname, or     *
    *                      object type TS and systables.dbname     *
    *                      and systables.tsname.  The EXEC can     *
    *                      set a return code and an error          *
    *                      message.                                *
    *                                                              *
    *                      To improve performance we intend        *
    *                      to cache the results from the exit      *
    *                      so the exit is not invoked many times   *
    *                      with the same object names.             *
    *                                                              *
    *                      Note: The values for the REXX exit      *
    *                      will be the same as the values stored   *
    *                      in the catalog tables for this          *
    *                      attribute ( e.g. AUDIT ).   Please      *
    *                      check the DB2 catalog table reference   *
    *                      for the values that are valid for the   *
    *                      attribute.                              *
    *                                                              *
    *                      Note:  If a mask file has both a        *
    *                      VER overwrite mask and a overwrite      *
    *                      mask for the same attribute ( e.g.      *
    *                      LOGGED ), then the VER overwrite        *
    *                      masking will be done first to verify    *
    *                      user data and then the overwrite mask   *
    *                      will be applied.                        *
    *                                                              *
    *                      Panel ADB2C2L 'CM - Mask Lines' is      *
    *                      changed to add a new column called      *
    *                      REQ which will be 'VER' for the new     *
    *                      verification masks.  The FROM column    *
    *                      will hold the verification operand and  *
    *                      values ( e.g.  EQ,YES ), and the TO     *
    *                      column will hold the verification       *
    *                      return code ( e.g.  RC=8 ) for a        *
    *                      verification mask row.                  *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    1 - User wants to be able to verify that the attributes for
    objects being compared are valid on their system.
    
    2 - User wants any incorrect attribute values to be reported
    and the process stopped if errors are found.
    
    The verification of attributes will be done in masking and the
    calling function will continue processing so all verification
    errors get reported.  When all objects have been processed,
    the calling function will stop the process if any verification
    errors are encountered. Verification errors will be written to
    a separate DD name called VALOUT and will be SYSOUT.  If the
    calling function is done in TSO mode, please use TSO ISRDDN
    to find the VALOUT DD to see results.   The masking dataset
    can have both existing masks / overwrites and the new
    verification masks, both will be processed by the masking
    facility. Syntax errors will be issued if syntax for VER
    masks is not correct.  Also, semantic errors like the ones
    caught by overwrite mask entries will be caught ( i.e.  Yes /
    no checking, valid numeric values ).
    
    A new syntax will be introduced to allow for a VER request
    for a overwrite mask type.  The new syntax is shown below:
    
    VER,field:verification_operator, verification_values,
    RC=verification_rc
    
       or
    
    VER,field:REXX(execname,parm1,...)
    
    Note:  The REXX exec must be built so that it returns two
    items in the return string.  The first 2 characters will
    be the return code value ( e.g. 00, 08, 12 ) followed by a
    colon, and the rest of the string is the error message
    if the REXX exec finds an error in verification.  The
    remaining string will be blank if no errors are found
    in verification. ( e.g., '08:A segsize of 12 was found when
    verifying segsize follow this expression, EQ,4' )
    
    Where
    
    VER -  Begins a verification mask
    Field - Attribute to verify 'Field' has to be an
            overwrite mask name or OBJNAME for name
            verification
    operator - One of the following operators:
        EQ - equal comparison
        NE - Not equal comparison
        LT - Less than comparison
        GT - Greater than comparison
        LIST - list of value
        RANGE - greater than/equal
        first value and less than/equal
        second value
        values -  values being compared
        for the field
        rc - One of the following return
             codes:
             12 - Fatal, processing will fail
              8 - Severe, processing will fail
              6 - Error, processing will fail
              4 - Warning, only will fail if
                  no exceptions are granted
              0 -  OK
       REXX  - run REXX exec provided to
                     validate the field
       Parm  - Parameters passed to the REXCX
               exec (same as for overwrites)
    
    NOTE:  Field has to be an overwrite mask except for one
    exception, new overwrite, OBJNAME.  OBJNAME is described
    below with special rules.
    
    Special overwrite named OBJNAME, which can verify both
    object name and object schema, is created so a REXX exit can
    be called to verify objects.  This overwrite can only use
    the REXX format.  An example of the syntax for this OBJNAME
    is:
    
       VER,OBJNAME:REXX(execname)
    
    The purpose of the OBJNAME REXX exit is to validate
    the object name and / or object schema.
    
    The exec will be called for all primary object names
    ( SG,DB,TS,TB,IX,DT,FU,SP,SQ,... ) with three parameters:
    
    - object type
    - object qualifier (blank for objects
      without a qualifier)
    - object name
    
    The user can use objtype, objqual and objname as the
    variable name for these three parameters in their EXEC.
    A primary object name is what is considered to be the
    primary key of the object.  i.e., for a table the exit will
    be called with TB and what corresponds to systables.creator
    and systables.name, and not be called with objec type DB
    systables.dbname, or object type TS and systables.dbname and
    systables.tsname. The EXEC can set a return code and an
    error message.
    
    To improve performance we intend to cache the results
    from the exit so the exit is not invoked many times
    with the same object names.
    
    Note: The values for the REXX exit will be the same
    as the values stored in the catalog tables for this
    attribute ( e.g. AUDIT ).   Please check the DB2 catalog
    table reference for the values that are valid for the
    attribute.
    
    Note:  If a mask file has both a VER overwrite mask
    and a overwritemask for the same attribute ( e.g. LOGGED ),
    then the VER overwrite masking will be done first to
    verify user data and then the overwrite mask will be
    be applied.
    
    Panel ADB2C2L 'CM - Mask Lines' is changed to add a new
    column called REQ which will be 'VER' for the new
    verification masks.  The FROM column will hold the
    verification operand and values ( e.g. EQ, YES ), and
    the TO column will hold the verification return code
    ( e.g. RC=8 ) for a verification mask row.
    

Problem conclusion

Temporary fix

Comments

  • An enhancement has been made to the Masking function to
    allow users to add a new type of mask that will perform
    verification of object attributes.  These new masks will be
    run along with the existing masks and any attributes that
    are flagged will be generated in the VERIFICATION MASK
    LIST REPORT.
    
    For example: if a user has a new verification mask specified
    as VER,AUDIT:EQ,ALL, the job fails with a return code 8 /
    RC=8, and an object being compared has AUDIT CHANGES
    the following report will be shown in DD VALOUT:
    
    VERIFICATION MASK LIST REPORT
    ===========================================
    Prepared on SSID (DB2 Release >db2_release<) by >userid<
    at  >date_timestamp<
    ADB3346E RC=8 Error processing AUDIT attribute.
    Value is CHANGES.  Verification failed for operation EQ,ALL
    

APAR Information

  • APAR number

    PI51554

  • Reported component name

    DB2 ADMIN TOOL

  • Reported component ID

    568851500

  • Reported release

    B20

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-10-30

  • Closed date

    2015-11-23

  • Last modified date

    2015-12-03

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Modules/Macros

  •    ADBASW   ADBCCM   ADBCCMM  ADBCDTS  ADBCDTW
    ADBCEST  ADBCEXP  ADBCIMV  ADBCMBAT ADBCMBSS ADBCP    ADBCRCM
    ADBCRCR  ADBCRSP  ADBCSPG  ADBCVOC  ADBC0    ADBDAT   ADBDK
    ADBHC2L  ADBHPCO  ADBLI    ADBNSPB  ADBPA    ADBPA1   ADBSETUP
    ADBTEPI  ADBTEPR  ADBTEPU  ADBTEP2  ADBV99   ADB2CID  ADB2CIMP
    ADB2CME  ADB2CMF  ADB2CMM  ADB2CMO  ADB2CMP  ADB2CMR  ADB2CMS
    ADB2CMT  ADB2CMU  ADB2CM1  ADB2CM2  ADB2CM3  ADB2C2L  ADB2C21
    ADB2FMT  ADB2GEN  ADB2GEN2 ADB2MASK ADB2MSK  ADB2MSQ  ADB2PA
    ADB2PA3  ADB2PA4  ADB2PA5  ADB2PA6  ADB2PCO  ADB2RE   ADB2REE
    ADB2REG  ADB2REH  ADB2REM  ADB2REU  ADB2REZ  ADB2SPFB ADB2WCL
    ADB2WIN  ADB2WVAL ADB2WVL  ADB2W1   ADB2W1Q  ADB2000  ADB27AC
    ADB28MC  ADB28MM  ADB3000  H0IHB20J
    

Fix information

  • Fixed component name

    DB2 ADMIN TOOL

  • Fixed component ID

    568851500

Applicable component levels

  • RB20 PSY UI33220

       UP15/11/26 P F511

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSCVQTD","label":"IBM Db2 Administration Tool for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.2.0","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
03 December 2015