Job DSNTIJRV

Job DSNTIJRV validates the Db2-supplied routines by executing program DSNTRVFY. You should validate these routines after Db2 installation and after each phase of migration.

DSNTRVFY validates a single routine, multiple routines, or all Db2-supplied routines. DSNTRVFY produces a report that identifies routines that passed the validation and possible problem areas for routines that failed.

Authorizations

If the RACF® facility class is active and a profile was defined for MVSADMIN.WLM.POLICY, the user that submits this job requires READ access.

If the RACF OPERCMDS class is active and a profile was defined for MVS™.MCSOPER.*, the user ID that submits this job requires READ access. Alternatively, you can add a discrete profile for the DSNTRVFY console that is used in this job.

Format

DSNTRVFY accepts the following required parameters:

DB2SSN(ssid)
Identifies which Db2 subsystem to connect to for validating the Db2-supplied routines.
ROUTINE(name)
Identifies which Db2-supplied routine needs to be validated. The following values are supported for name:
  • A routine name in the form of schema-name.routine-specific-name.
  • The keyword DD:SYSIN to specify a list of routines. List the routines in the form of schema-name.routine-specific-name under the SYSIN DD statement with one routine per line.
  • The keyword ALL to specify all Db2-supplied routines.

DSNTRVFY also accepts the following optional parameters:

AUTHID(authorization ID)
DSNTRVFY uses this value as the CURRENT SQLID for issued SQL statements. Also, if PKOWNER(pkowner) is not specified, DSNTRVFY uses this value as the OWNER for BIND PACKAGE and BIND PLAN statements. If this value is not specified, the primary authorization ID is used for BIND PACKAGE, BIND PLAN, and issued SQL statements.
PKOWNER(pkowner)

Specifies the default owner for binding the DSNTRVFY plan and package. If the INSTALL PKG OWNER field on panel DSNTIPG is specified, the installation CLIST uses that value to set PKOWNER(pkowner) during the editing of DSNTIJRV. Otherwise, it uses the value specified in the ROUTINES CREATOR field on panel DSNTIPG. If SYSINSTL is specified on panel DSNTIPG, the installation CLIST adds a notice to the DSNTIJRV prolog to explain additional requirements.

If you use an authorization ID with the installation SYSOPR authority to execute job DSNTIJRV, the ID must be explicitly granted the MONITOR2 system privilege. If you set AUTHID to SYSINSTL for running the SYSPROC.WLM_REFRESH stored procedure, you must also define SYSINSTL in RACF.

Output

DSNTRVFY allocates the following required DD statements for output:

SYSPRINT
Contains messages generated during verification processing. Each processed routine can generate one or more messages.
SYSTSPRT
DSNTRVFY writes bind output to SYSTSPRT if an error occurs during bind processing.
The following JCL example is for validating a single routine:
//DSNTJVFY EXEC PGM=DSNTRVFY,
//         PARM='DB2SSN(VA1A) ROUTINE(SYSPROC.DSNUTILS)'
//DBRMLIB  DD DSN=DB2A.SDSNDBRM,DISP=SHR
//SYSUT1   DD UNIT=SYSDA,SPACE=(32000,(30,30)),DCB=(RECFM=VB,LRECL=133)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *
The following JCL example is for validating multiple routines:
//DSNTJVFY EXEC PGM=DSNTRVFY,
//         PARM='DB2SSN(VA1A) ROUTINE(DD:SYSIN)'
//DBRMLIB  DD DSN=DB2A.SDSNDBRM,DISP=SHR
//SYSUT1   DD UNIT=SYSDA,SPACE=(32000,(30,30)),DCB=(RECFM=VB,LRECL=133)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
  SYSPROC.DSNWZP
  SYSPROC.DSNACCOR
  SYSPROC.DSNUTILS
  SYSPROC.DSNUTILU
The following JCL example is for validating all routines:

//DSNTRVFY EXEC PGM=DSNTRVFY,COND=(4,LT),
//         PARM=('DB2SSN(DSN) AUTHID(SYSINSTL) ',
//         'PKOWNER(ADMF001) ROUTINE(ALL)') 

//DBRMLIB  DD DSN=DB2A.SDSNDBRM,DISP=SHR
//SYSUT1   DD UNIT=SYSDA,SPACE=(32000,(30,30)),DCB=(RECFM=VB,LRECL=133)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *

Processing

DSNTRVFY completes the following validation:

  • Verifies that the routine is defined to the SYSIBM.SYSROUTINES catalog.
  • Verifies that the collection ID defined in the SYSIBM.SYSROUTINES catalog table matches the collection ID used to bind the package.
  • Verifies that the routine is currently defined with the Db2-reserved WLM application environment name DSNWLM_NOT_ENABLED, indicating that it is not enabled to run on the current Db2 subsystem. If it is, then a warning message is issued and the validation is bypassed.
  • Verifies if the routine can be executed on the current Db2 catalog mode.
  • Verifies the APF authorization requirements.
  • Verifies if the WLM application environment is defined and available for use.
  • Verifies if the NUMTCB setting is valid or within the recommended range.
  • Verifies if the required DD statements for some of the routines are defined.
  • Verifies if the WLM environment assigned to Java™ routines is enabled for Java.
  • Verifies security coexistence requirements (for example, some routines should run on only their own WLM application environment).
  • Verifies that the selected routine can be called successfully. Certain routines such as DSNACICS, DSNAIMS, IBM MQ functions, and most debugger routines are restricted to basic validation and are not called.
During the running of this job, the following message might be issued on the system console:
IEFC452I  DB2UDSMD - JOB NOT RUN - JCL ERROR
In most cases, this message is normal and can be disregarded.

If the validation is successful, the following message is issued:

DSNT027I DSNTRVFY VALIDATION FOR schema.routine-specific-name SUCCESSFUL

If the validation fails, messages are issued to explain the reasons for failure. Examine these messages and make necessary adjustments before running the validation job again.

Input

DSNTRVFY requires the following DD statements for input:

DBRMLIB
Identifies the library where the DBRM for the DSNTRVFY program is located. This is typically the prefix.SDSNDBRM target library.
SYSIN
Contains the list of Db2 routines. This is required when the validation type is for multiple routines (DD:SYSIN).
SYSUT1
Work data set required for bind processing.

Limitations

The following limitations apply to the DSNTRVFY program:

  • The name of the routine in the form schema-name.routine-specific-name is limited to 72 characters, the maximum line length in JCL.
  • Only Db2 13 Db2-supplied routines are supported for validation.
  • Some routines, if enabled, receive basic validation to ensure that they are defined correctly and assigned to a valid WLM application environment. However, validation will not extend to calling these routines for one or more of the following reasons:
    • Optional system support such as CICS®, IMS, or IBM MQ is required.
    • External setup on a remote server or workstation is required.
    • A call could introduce or modify data unexpectedly in a production environment.

    The Db2-supplied routines that are restricted to basic validation are:

    • DB2DEBUG.CREATE_SESSION
    • DB2DEBUG.DESTROY_SESSION
    • DB2DEBUG.GET_REPORT
    • DB2DEBUG.LIST_SESSION
    • DB2DEBUG.PUT_COMMAND
    • SYSFUN.SYSTS_ENCRYPT
    • SYSFUN.XSLTRANSFORM
    • SYSPROC.ADMIN_COMMAND_UNIX
    • SYSPROC.ADMIN_JOB_CANCEL
    • SYSPROC.ADMIN_JOB_FETCH
    • SYSPROC.ADMIN_JOB_QUERY
    • SYSPROC.ADMIN_JOB_SUBMIT
    • SYSPROC.DBG_ENDSESSIONMANAGER
    • SYSPROC.DBG_INITIALIZECLIENT
    • SYSPROC.DBG_RECVCLIENTREPORTS
    • SYSPROC.DBG_SENDCLIENTREQUESTS
    • SYSPROC.DBG_SENDCLIENTCOMMANDS
    • SYSPROC.DBG_TERMINATECLIENT
    • SYSPROC.DSNACICS
    • SYSPROC.DSNAIMS
    • SYSPROC.DSNAIMS2
    • SYSPROC.DSNLEUSR
    • SYSPROC.SET_MAINT_MODE_RECORD_NO_TEMPORALHISTORY
    • SYSPROC.SYSTS_ALTER
    • SYSPROC.SYSTS_CREATE
    • SYSPROC.SYSTS_DROP
    • SYSPROC.SYSTS_RESTORE
    • SYSPROC.SYSTS_START
    • SYSPROC.SYSTS_STOP
    • SYSPROC.SYSTS_TAKEOVER
    • SYSPROC.SYSTS_UPDATE
    • All IBM MQ, web services, and SOAP functions (those with schema DB2MQ, DB2MQ1C, DB2MQ2C, or DB2XML)

Notes

Temporary stored procedures used by DSNTIJRV
DSNTRVFY creates, calls, and drops two temporary stored procedures. These temporary stored procedures are SYSPROC.DSNWLM_INSTALL_INFOJ and SYSPROC.DSNWLM_INSTALL_INFO. Both of these stored procedures exist only when DSNTRVFY is executing. DSNTRVFY calls SYSPROC.DSNWLM_INSTALL_INFOJ to validate the WLM environment that is assigned to each Db2-supplied Java routine. DSNTRVFY calls SYSPROC.DSNWLM_INSTALL_INFO to validate the WLM environment that is assigned to each Db2-supplied non-Java routine that runs in a WLM environment.
Using DSNTIJRV to verify 64-bit Java routines
Java on z/OS has two types of architectures: a 31-bit version and a 64-bit version. If your Java routines run in a 31-bit Java virtual machine (JVM), the startup procedure for the WLM environment in which the routines run must initialize a 31-bit environment. If you are running Java routines in a 64-bit JVM, the startup procedure for the WLM environment in which your Java routines run must initialize a 64-bit environment. The program that initializes a 31-bit WLM environment is DSNX9WLM. The program that initializes a 64-bit WLM environment is DSNX9WJM.

For example, you might use the Db2 core Java WLM environment, DSNWLM_JAVA, for your Java routines. By default, the DSNWLMJ startup procedure for DSNWLM_JAVA runs program DSNX9WLM. If your JAVA_HOME environment variable specifies the path to a 31-bit JVM, such as /usr/lpp/java/8.0, you need to run program DSNX9WLM to initialize the WLM environment. However, if your JAVA_HOME variable specifies a path to a 64-bit JVM, such as /usr/lpp/java/8.0_64, you need to run program DSNX9WJM to initialize the WLM environment. If you switch to a 64-bit JVM for your Java stored procedures, but do not update the initialization program to DSNX9WJM, DSNTIJRV fails.