加载并运行批处理程序
您可以通过运行模块 DSNMTV01 来运行DL/I批处理程序,该模块加载您的应用程序,或者直接运行应用程序。
过程
要使用 Db2 运行程序,您需要一个 Db2 计划。


装订过程会创建 Db2 计划。 Db2 首先验证DL/I批处理作业步骤是否可以连接到。 Db2 然后, Db2 会验证应用程序是否可以访问 Db2 ,并强制访问 Db2 的批处理作业进行用户身份验证。
向 Db2 提交DL/I批量申请有两种方式:

- DSNMTV01 可以指定为批处理区域的程序名称。 使用此方法时,控制权归 DSNMTV01 所有。 当 Db2 环境建立后,控制权将移交给应用程序。
- 可以为批次区域指定应用程序名称。 控制权直接交给 DSNMTV01 ,以便为 Db2 建立外部子系统环境。 当 Db2 环境建立后,控制权将移交给批处理区域中指定的应用程序。 为了实现这一目标,请在应用程序JCL的批处理区域启动程序中指定以下信息:
MBR=application-nameSSM=DB2-subsystem-name

示例
- 示例:提交DL/I批量申请,但不使用 DSNMTV01
- 下例中的骨架JCL演示了 COBOL 应用程序 IVP8CP22 ,该程序 Db2 通过DL/I批处理支持运行。
//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 /* - 示例:使用 DSNMTV01
- 以下JCL示例框架展示了一个名为 IVP8CP22 的 COBOL 应用程序,该程序通过 Db2 DL/I批处理支持运行。
- 第一步使用标准的DLIBATCH IMS 程序。
- 第二步演示如何使用 DFSERA10 IMS 程序打印 DDOTV02 输出数据集的内容。
//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 /* //