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:
- 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
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 /* //