Db2 utilities coexistence recommendations
Until all members of the data sharing group are running Db2 12, avoid use of new utility capabilities in Db2 12. If you use utility options that are supported in Db2 11, utilities can attach to either a Db2 11 or Db2 12 member.
The utilities batch program (DSNUTILB) is split into multiple load modules: a release-independent load module called DSNUTILB, multiple release-dependent modules DSNUT111 or DSNUT121, and forDb2 11 it includes multiple utility-dependent feature load modules. To operate in a mixed-release data sharing environment, you must have DSNUT111, and DSNUT121. You must also have all utility-dependent load modules and their aliases for utilities that you purchased for use with Db2 11 available to the utility jobs that operate across the data sharing group. 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='DSN1210.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=DSN1110.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 DSNUT111 into the Db2 12 load libraries, and copy DSNUT121 into the Db2 11 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 D121TPRE='DSN1210',
// D111TPRE='DSN1110',
// 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 *****************************
//*
//D111LOAD DD DSN=&D111TPRE..SDSNLOAD,DISP=OLD
//D121LOAD DD DSN=&D121TPRE..SDSNLOAD,DISP=OLD
//*
// PEND
//COEXIST EXEC PROC=DSNTIJCO
//SYSIN DD *
COPYMOD INDD=((D121LOAD,R)),OUTDD=D111LOAD
SELECT MEMBER=(DSNUT121)
COPYMOD INDD=((D111LOAD,R)),OUTDD=D121LOAD
SELECT MEMBER=(DSNUT111) <-- add any utility-dependent feature modules here
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 11 is no longer a possibility. For more information about the catalog changes in Db2 12, see Catalog changes in Db2 12.