A fix is available
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