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.
The 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. 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.
//
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)
When to update COPY, RECOVER, and REBUILD INDEX jobs for Db2 catalog objects
- 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.