Db2 utilities coexistence recommendations

Until all members of the data sharing group are running Db2 13, avoid use of new utility capabilities in Db2 13. If you use utility options that are supported in Db2 12, utilities can attach to either a Db2 12 or Db2 13 member.

Important: In data sharing release coexistence, you must restart a utility on a member on the same Db2 release as the member where the utility job was originally submitted. The same utility ID (UID) must be used to restart the utility. That UID is unique within a data sharing group. However, if Db2 fails, you must restart Db2 on either the same or another z/OS system before you restart the utility.

Start of changeThe utilities batch program (DSNUTILB) is split into multiple load modules: a release-independent load module called DSNUTILB, and multiple release-dependent modules DSNUT121 or DSNUT131.End of change To operate in a mixed-release data sharing environment, you must have DSNUT121, and DSNUT131. The following examples show how you can make thee required load modules available.

Changing STEPLIB in DSNUPROC

The recommended method for making the release-dependent modules available for utility jobs is to change the STEPLIB in DSNUPROC to include the other release, as in the following example:

//DSNUPROC PROC LIB='DSN1310.SDSNLOAD',
//         SYSTEM=DSN,
//         SIZE=0K,UID=',UTPROC='
//DSNUPROC EXEC PGM=DSNUTILB,REGION=&SIZE,
//         PARM='&SYSTEM,&UID,&UTPROC'
//STEPLIB  DD   DSN=&LIB,DISP=SHR;
//         DD   DSN=DSN1210.SDSNLOAD,DISP=SHR <— coexistence
//SYSPRINT DD   SYSOUT=*
//UTPRINT  DD   SYSOUT=*
//SYSUDUMP DD   SYSOUT=*
//*DSNUPROC PEND        REMOVE * FOR USE AS INSTREAM PROCEDURE

Cross-copy into load libraries

Another approach, which is not recommended for long-term use, is to cross-copy the release-dependent modules into the load libraries of the other release. For example, copy DSNUT121 into the Db2 13 load libraries, and copy DSNUT131 into the Db2 12 load libraries. The problem with this approach is that you must repeat this procedure every time you apply maintenance to these modules. Thus, as with coexistence in general, this approach is only for short-term use.

The following shows sample JCL to complete the cross-copy:
//
CROSCOPY PROC D131TPRE='DSN1310',
//            D121TPRE='DSN1210',
//            RGN=4096K,SOUT='*'
//* *******************************************************************
//*    FOR EXECUTION OF IEBCOPY - DB2 POST-INSTALLATION             ***
//* *******************************************************************
//COPY     EXEC PGM=IEBCOPY,REGION=&RGN
//SYSUT3   DD  UNIT=SYSDA,SPACE=(CYL,(5,1))
//SYSUT4   DD  UNIT=SYSDA,SPACE=(CYL,(5,1))
//* **************  DB2 TARGET LIBRARIES  *****************************
//*
//D121LOAD DD  DSN=&D121TPRE..SDSNLOAD,DISP=OLD
//D131LOAD DD  DSN=&D131TPRE..SDSNLOAD,DISP=OLD
//*
//         PEND
//COEXIST  EXEC PROC=DSNTIJCO
//SYSIN    DD *
  COPYMOD INDD=((D131LOAD,R)),OUTDD=D121LOAD
   SELECT MEMBER=(DSNUT131)     
  COPYMOD INDD=((D121LOAD,R)),OUTDD=D131LOAD
   SELECT MEMBER=(DSNUT121)
Start of change

When to update COPY, RECOVER, and REBUILD INDEX jobs for Db2 catalog objects

You might need to update COPY, RECOVER, and REBUILD INDEX utility jobs to add new or remove obsolete Db2 catalog objects after migration to Db2 13. When a utility encounters the following situations for When a utility encounters the following situations for Db2 catalog objects, it issues message DSNU1530I:
  • The object is no longer used or no longer exists.
  • The object is created in a higher catalog level or function level.

For best results, update the utility jobs for the new or obsolete Db2 catalog objects after you activate the function level that the changes support, when coexistence with Db2 12 is no longer a possibility. For more information about the catalog changes in Db2 13, see Catalog changes in Db2 13.

End of change