Method 1. Customizing LIU load modules by creating alias name DSPCRTR0

Create an alias name DSPCRTR0, APF-authorize the LIU load module library, and add DD statements to JCL and procedures of DBRC, IMS batch applications, IMS utilities, and IMS tools.

Procedure

  1. Create alias name DSPCRTR0 by link-editing the FABLRTR0 load module.

    Complete this step if either of the following conditions apply:

    You can use the following JCL example to create alias name DSPCRTR0. This JCL is in the SHPSJCL0 library, member FABLALSC.

    When the job ends, confirm that the return code is 0.

    //FABLALSC JOB            
    //*-------------------------------------------------------------------- 
    //*   STEP1: Add the alias DSPCRTR0
    //*-------------------------------------------------------------------- 
    //LINK   EXEC PGM=IEWL,REGION=0M,                                       
    //   PARM='SIZE=(880K,64K),LET,LIST,NCAL,RENT,REFR,XREF'                
    //* IEWL = IEWBLINK                                                     
    //*                                                                     
    //SYSPRINT DD  SYSOUT=*                                                 
    //SYSLMOD  DD  DISP=OLD,DSN=LIU.SHPSLMD0  LIU target load module lib 
    //SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(10,1))                            
    //* CAUTION!!!                                                          
    //*   SPECIFY SHPSLMD0 TO THE INCLUDE STATEMENT.                        
    //*   IF YOU SPECIFY AHPSMOD0 TO THE INCLUDE STATEMENT,     
    //*   THE NON-ACCEPTED CHANGES WILL BE DELETED.           
    //SYSLIN   DD  *                                                        
      ENTRY    FABLRTR0                                                     
      INCLUDE  SYSLMOD(FABLRTR0)                                            
      ALIAS    DSPCRTR0                                                     
      NAME     FABLRTR0(R)                                                  
    /*                           
  2. APF-authorize the LIU load module library.

    The LIU load module library and the load module data sets that contain the global option modules must be APF-authorized.

  3. Add DD statements to JCL and procedures of DBRC, IMS batch applications, IMS utilities, and IMS tools.

    You must add DD statements to JCL and cataloged procedures for all the jobs that you want to activate Integrity Checker in. These JCL and procedures include those for DBRC, IMS batch applications, IMS utilities, and IMS Tools jobs that update IMS databases.

    Important: For integrity, ensure that all JCL and procedures that might change databases meet the following STEPLIB DD requirements.

    Add the following DD statements:

    STEPLIB DD
    Add the load module data sets that contain the global option module and the LIU load module library to the STEPLIB concatenation.

    The LIU load module library must be concatenated before the IMS load module library and must be APF-authorized.

    If you want Integrity Checker to detect changes in the logic of IMS user exits, which include randomizing routines, segment edit/compression exit routines, and HALDB or DEDB partition selection exit routines, also include the exit load modules in the STEPLIB concatenation. Integrity Checker does not check the user exit load modules in the LPA, ELPA, or LNKLST.

    FABLPRNT DD
    Optionally, you can specify the FABLPRNT DD statement in your procedures. This statement causes Integrity Checker to generate messages in the DD.

    If this statement is specified, Integrity Checker writes messages into this DD in addition to issuing the WTO macro. Each message contains a time stamp in its prefix, and you can easily identify the messages in relation to the authorization request from your application programs.

    FABLSNAP DD
    Optionally, you can specify the FABLSNAP DD statement in your online DBRC procedure. This statement causes Integrity Checker to generate diagnostic information for the VSAM control blocks when Integrity Checker gets a VSAM error. For DL/I batch jobs, you do not need to specify this DD statement because the jobs issue an abend dump when they get a VSAM error.

Example

The following figures show examples of the procedures.

Figure 1. Example of DBRC procedure for a non-BPE-based DBRC region
//       PROC RGN=64M,DPTY='(14,15)',SOUT=A,
//            IMSID=SYS3,SYS2=,IMSPLEX=
//IEFPROC EXEC PGM=DFSMVRC0,REGION=&RGN,
//            DPRTY=&DPTY,PARM='DRC,&IMSID,IMSPLEX=&IMSPLEX'
//****************************************************
//*
//STEPLIB  DD DSN=HPS.SHPSLMD0,DISP=SHR     <<---- STEPLIB DD
//         DD DSN=IMS.&SYS2.SDFSRESL,DISP=SHR
//PROCLIB  DD DSN=IMS.&SYS2.PROCLIB,DISP=SHR
//JCLOUT   DD SYSOUT=(A,INTRDR)
//JCLPDS   DD DSN=IMS.&SYS2.PROCLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=&SOUT
//SYSABEND DD SYSOUT=&SOUT
//FABLPRNT DD SYSOUT=&SOUT                  <<---- FABLPRNT DD
//FABLSNAP DD SYSOUT=&SOUT                  <<---- FABLSNAP DD
Figure 2. Example of DBRC procedure for a BPE-based DBRC region
//DBRC    PROC RGN=0M,SOUT=A,                                         
//             RESLIB='IMS.SDFSRESL',                                 
//             BPECFG=BPECONFG,                                       
//             DBRCINIT=000,                                          
//             IMSID=IMS1,                                            
//             PARM1='BPEINIT=DSPBINI0'                               
//*                                                                   
//DBRCPROC   EXEC PGM=BPEINI00,REGION=&RGN,                            
// PARM='BPECFG=&BPECFG,DBRCINIT=&DBRCINIT,IMSID=&IMSID,&PARM1'        
//*                                                                    
//STEPLIB  DD DSN=HPS.SHPSLMD0,DISP=SHR     <<---- STEPLIB DD    
//         DD DSN=&RESLIB,DISP=SHR                                    
//         DD DSN=SYS1.CSSLIB,DISP=SHR                             
//PROCLIB  DD DSN=IMS.PROCLIB,DISP=SHR                                
//SYSPRINT DD SYSOUT=&SOUT                                            
//SYSUDUMP DD SYSOUT=&SOUT                                            
//JCLOUT   DD SYSOUT=(A,INTRDR)                                        
//JCLPDS   DD DSN=IMS.PROCLIB,DISP=SHR                                 
//SYSABEND DD SYSOUT=&SOUT
//FABLPRNT DD SYSOUT=&SOUT                  <<---- FABLPRNT DD
//FABLSNAP DD SYSOUT=&SOUT                  <<---- FABLSNAP DD
Figure 3. Example of DLIBATCH procedure
//       PROC MBR=TEMPNAME,PSB=,BUF=7,
//            SPIE=0,TEST=0,EXCPVR=0,RST=0,PRLD=,
//            SRCH=0,CKPTID=,MON=N,LOGA=0,FMTO=T,
//            IMSID=,SWAP=,DBRC=,IRLM=,IRLMNM=,
//             BKO=N,IOB=,SSM=,APARM=,
//            RGN=4M,
//            SOUT=A,LOGT=2400,SYS2=,
//            LOCKMAX=,GSGNAME=,TMINAME=,
//            IMSPLEX=
//G      EXEC PGM=DFSRRC00,REGION=&RGN,
//            PARM=(DLI,&MBR,&PSB,&BUF,
//            &SPIE&TEST&EXCPVR&RST,&PRLD,
//            &SRCH,&CKPTID,&MON,&LOGA,&FMTO,
//            &IMSID,&SWAP,&DBRC,&IRLM,&IRLMNM,
//            &BKO,&IOB,&SSM,'&APARM',
//            &LOCKMAX,&GSGNAME,&TMINAME,
//            &IMSPLEX)
//STEPLIB  DD DSN=HPS.SHPSLMD0,DISP=SHR     <<---- STEPLIB DD
//         DD DSN=IMS.&SYS2.SDFSRESL,DISP=SHR
//         DD DSN=IMS.&SYS2.PGMLIB,DISP=SHR
//DFSRESLB DD DSN=IMS.&SYS2.SDFSRESL,DISP=SHR
//IMS      DD DSN=IMS.&SYS2.PSBLIB,DISP=SHR
//         DD DSN=IMS.&SYS2.DBDLIB,DISP=SHR
//PROCLIB  DD DSN=IMS.&SYS2.PROCLIB,DISP=SHR
//IEFRDER  DD DSN=IMSLOG,DISP=(,KEEP),VOL=(,,,99),
//         UNIT=(&LOGT,,DEFER),
//         DCB=(RECFM=VB,BLKSIZE=4096,
//         LRECL=4092,BUFNO=2)
//IEFRDER2 DD DSN=IMSLOG2,DISP=(,KEEP),VOL=(,,,99),
//         UNIT=(&LOGT,,DEFER,SEP=IEFRDER),
//         DCB=(RECFM=VB,BLKSIZE=4096,
//         LRECL=4092,BUFNO=2)
//SYSUDUMP DD SYSOUT=&SOUT,
//         DCB=(RECFM=FBA,LRECL=121,BLKSIZE=605),
//         SPACE=(605,(500,500),RLSE,,ROUND)
//IMSMON   DD DUMMY
//FABLPRNT DD SYSOUT=&SOUT                   <<---- FABLPRNT DD