Recommendations for utilities in coexistence

Until all members of the data sharing group are running Db2 11, avoid using any of the new utility functions that are available in Db2 11. However, as long as you use utility options that are supported in Db2 10, utilities can attach to either a Db2 10 or Db2 11 member.

Important: Start of changeIn 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.End of change

The utilities batch program (DSNUTILB) is split into multiple load modules: a release-independent load module called DSNUTILB, multiple release-dependent modules DSNUT101 or DSNUT111, and multiple utility-dependent load modules. To operate in a mixed-release data sharing environment, you must have DSNUT101 (if applicable), and DSNUT111. And you must have all utility-dependent load modules and their aliases for the utilities that you have purchased available to the utility jobs that operate across the data sharing group. The following examples show how you can make these 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='DSN1110.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=DSN1010.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 DSNUT101 into the Db2 11 load libraries, and copy DSNUT111 and all applicable utility-dependent load modules into the Db2 10 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 perform the cross-copy:
//
CROSCOPY PROC D111TPRE='DSN1110',
//            D101TPRE='DSN1010',
//            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  *****************************
//*
//D101LOAD DD  DSN=&D101TPRE..SDSNLOAD,DISP=OLD
//D111LOAD DD  DSN=&D111TPRE..SDSNLOAD,DISP=OLD
//*
//         PEND
//COEXIST  EXEC PROC=DSNTIJCO
//SYSIN    DD *
  COPYMOD INDD=((D111LOAD,R)),OUTDD=D101LOAD
   SELECT MEMBER=(DSNUT111)     <-- add any utility-dependent modules here
  COPYMOD INDD=((D101LOAD,R)),OUTDD=D111LOAD
   SELECT MEMBER=(DSNUT101)