加载并运行批处理程序

您可以通过运行模块 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-name
    • SSM=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
/*
//