Loading and running a batch program

You can run a DL/I batch program by running module DSNMTV01, which loads your application, or by running the application program directly.

Procedure

To run a program using Db2, you need a Db2 plan.

The bind process creates the Db2 plan. Db2 first verifies whether the DL/I batch job step can connect to Db2. Then Db2 verifies whether the application program can access Db2 and enforce user identification of batch jobs accessing Db2.

The two ways to submit DL/I batch applications to Db2 are:

Start of change
  • DSNMTV01 can be specified as the application program name for the batch region. When this method is used, control is given to DSNMTV01. When the Db2 environment is established, control is passed to the application program.
  • The application program name can be specified for the batch region. Control is given to DSNMTV01 directly to establish the external subsystem environment for Db2. When the Db2 environment is established, control is passed to the application program that is specified in the batch region. To accomplish this, in the batch region startup procedure in your application JCL, specify the following information:
    • MBR=application-name
    • SSM=DB2-subsystem-name
End of change

Examples

Example: Submitting a DL/I batch application without using DSNMTV01
The skeleton JCL in the following example illustrates a COBOL application program, IVP8CP22, that runs using Db2 DL/I batch support.
//TEPCTEST JOB 'USER=ADMF001',MSGCLASS=A,MSGLEVEL=(1,1),
//          TIME=1440,CLASS=A,USER=SYSADM,PASSWORD=SYSADM
//*******************************
//BATCH  EXEC DLIBATCH,PSB=IVP8CA,MBR=IVP8CP22,
//       BKO=Y,DBRC=N,IRLM=N,SSM=SSDQ
//*******************************
//SYSPRINT DD SYSOUT=A
//REPORT   DD SYSOUT=*
//G.DDOTV02 DD DSN=&TEMP,DISP=(NEW,PASS,DELETE),
//    SPACE=(CYL,(10,1),RLSE),
//    UNIT=SYSDA,DCB=(RECFM=VB,BLKSIZE=4096,LRECL=4092)
//G.DDITV02 DD *
SSDQ,SYS1,DSNMIN10,,Q,",DSNMTES1,,IVP8CP22
//G.SYSIN DD *
/*
//****************************************************
//*   ALWAYS ATTEMPT TO PRINT OUT THE DDOTV02 DATA SET
//****************************************************
//PRTLOG EXEC PGM=DFSERA10,COND=EVEN
//STEPLIB   DD DSN=IMS.RESLIB,DISP=SHR
//SYSPRINT  DD SYSOUT=*
//SYSOUT    DD SYSOUT=*
//SYSUT1    DD DSN=&TEMP,DISP=(OLD,DELETE)
//SYSIN     DD *
CONTROL  CNTL K=000,H=8000
OPTION   PRINT
/*
Example: Submitting a DL/I batch application using DSNMTV01
The following skeleton JCL example illustrates a COBOL application program, IVP8CP22, that runs using Db2 DL/I batch support.
  • The first step uses the standard DLIBATCH IMS procedure.
  • The second step shows how to use the DFSERA10 IMS program to print the contents of the DDOTV02 output data set.
//ISOCS04  JOB 3000,ISOIR,MSGLEVEL=(1,1),NOTIFY=ISOIR,
//        MSGCLASS=T,CLASS=A
//JOBLIB  DD  DISP=SHR,
//            DSN=prefix.SDSNLOAD
//* ******************************************************************
//*
//* THE FOLLOWING STEP SUBMITS COBOL JOB IVP8CP22, WHICH UPDATES
//* BOTH DB2 AND DL/I DATABASES.
//*
//* ******************************************************************
//UPDTE    EXEC DLIBATCH,DBRC=Y,LOGT=SYSDA,COND=EVEN,
//  MBR=DSNMTV01,PSB=IVP8CA,BKO=Y,IRLM=N
//G.STEPLIB  DD  
//           DD DSN=prefix.SDSNLOAD,DISP=SHR
//           DD  DSN=prefix.RUNLIB.LOAD,DISP=SHR
//           DD  DSN=CEE.SCEERUN,DISP=SHR
//           DD  DSN=IMS.PGMLIB,DISP=SHR
//G.DDOTV02  DD  DSN=&TEMP1,DISP=(NEW,PASS,DELETE),
//         SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA,
//         DCB=(RECFM=VB,BLKSIZE=4096,LRECL=4092)
//G.DDITV02  DD  *
  SSDQ,SYS1,DSNMIN10,,A,-,BATCH001,,IVP8CP22
/*
//***************************************************************
//***   ALWAYS ATTEMPT TO PRINT OUT THE DDOTV02 DATA SET      ***
//***************************************************************
//STEP3     EXEC  PGM=DFSERA10,COND=EVEN
//STEPLIB   DD    DSN=IMS.RESLIB,DISP=SHR
//SYSPRINT  DD    SYSOUT=A
//SYSUT1    DD    DSNAME=&TEMP1,DISP=(OLD,DELETE)
//SYSIN     DD    *
CONTROL  CNTL K=000,H=8000
OPTION   PRINT
/*
//