使用您自己的作业流
您可以使用提供的编目过程作为模型来编写自己的 JCL 以转换,组装 (或编译) 和链接编辑应用程序。
这些过程安装在 CICSTS54中。CICS.SDFHPROC 库。
以下信息总结了有关转换程序和每个主要程序类别的要点。 为了简单起见,描述假定程序已装入到 CICSTS54中。CICS.SDFHLOAD 或 IMS.PGMLIB。 仅当程序包含在 DFHRPL 或 CICS ® 作业流中的动态 LIBRARY 并置中,或者包含在批处理作业流中的 STEPLIB 库并置中 (对于独立 IMS 批处理程序) 时,才能将程序装入到任何库中。
注: 作业流中引用的 IMS 库由 IMS.libnam (例如 IMS.PGMLIB)。 如果您对 IMS 库使用自己的命名约定,那么必须相应地重命名 IMS 库。
转换程序需求
CICS 转换程序至少需要 256 KB 的虚拟存储器。 您可能需要使用转换程序选项 CICS 和 DLI。使用 EXEC CICS 或 EXEC DLI 命令的联机程序
- 始终使用转换程序选项 CICS。 如果程序发出 EXEC DLI 命令,请使用转换程序选项 DLI。
- 链接编辑输入 (由 SYSLIN DD 语句定义) 必须在对象层 之前 包含正确的接口模块。 因此,请在对象层之前放置接口模块的 INCLUDE 语句。 还将 ORDER 语句放在 INCLUDE 语句之前,并将 ENTRY 语句放在所有 INCLUDE 语句之后。接口模块如下:
- DFHEAI
- 汇编语言
- DFHELII
- 所有 HLL 语言
在 CICS 提供的过程中,链接编辑步骤 (由 SYSLIN DD 语句定义) 的输入将库成员与对象层并置。 此成员包含必需接口模块的 INCLUDE 语句。 例如, DFHYITVL 过程并置库成员 DFHEILID ,其中包含以下 INCLUDE 语句:INCLUDE SYSLIB(DFHELII) - 将链接编辑 (由 SYSLMOD DD 语句定义) 中的装入模块输出放在 CICSTS54中。CICS.SDFHLOAD 或您自己的程序库。
图 1 显示了样本 JCL 和内联过程 (基于 CICS 提供的过程 DFHYITVL) ,可用于安装 COBOL 应用程序。 该过程不包括包含所需接口模块的 INCLUDE 语句 (如 DFHYITVL 过程中所包含) 的库成员 DFHEILID 的 COPYLINK 步骤和并置。 相反, JCL 提供以下 INCLUDE 语句:
INCLUDE SYSLIB(DFHELII)
如果未提供此语句,那么链接编辑将针对未解析的外部引用返回错误消息,并且程序输出将标记为不可执行。图 1。 用于安装 COBOL 程序的样本用户定义 JCL
//* The following JCL could be used to execute this procedure
//*
//APPLPROG EXEC MYYITVL,
// INDEX='CICSTS54.CICS
// PROGLIB='CICSTS54.CICS.SDFHLOAD',
// DSCTLIB='CICSTS54.CICS.SDFHCOB',
// INDEX2='user.qualif'
// OUTC=A, Class for print output
// REG=4M, Region size for all steps
// LNKPARM='LIST,XREF', Link edit parameters
// WORK=SYSDA Unit for work data sets
//TRN.SYSIN DD *
//* .
//* . Application program
//* .
//*
//LKED.SYSIN DD *
INCLUDE SYSLIB(DFHELII)
NAME anyname(R)
//*
//MYYITVL PROC SUFFIX=1$, Suffix for translator module
// INDEX='CICSTS54.CICS
', Qualifier(s) for CICS libraries
// PROGLIB='CICSTS54.CICS.SDFHLOAD', Name of o/p library
// DSCTLIB='CICSTS54.CICS.SDFHCOB', Private macro/dsect
// AD370HLQ='SYS1', Qualifier(s) for AD/Cycle compiler
// LE370HLQ='SYS1', Qualifier(s) for Language Environment libraries
// OUTC=A, Class for print output
// REG=4M, Region size for all steps
// LNKPARM='LIST,XREF', Link edit parameters
// WORK=SYSDA Unit for work data sets
//*
//* This procedure contains 3 steps
//* 1. Exec the COBOL translator (using the supplied suffix 1$)
//* 2. Exec the COBOL compiler
//* 3. Linkedit the output into data set &PROGLIB
//TRN EXEC PGM=DFHECP &SUFFIX,,
// PARM='COBOL3',
// REGION=®
//STEPLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=&OUTC
//SYSPUNCH DD DSN=&&SYSCIN,
// DISP=(,PASS),UNIT=&WORK,
// DCB=BLKSIZE=400,
// SPACE=(400,(400,100))
//*
//COB EXEC PGM=IGYCRCTL,REGION=®,
// PARM='NODYNAM,LIB,OBJECT,RENT,APOST,MAP,XREF'
//STEPLIB DD DSN=&AD370HLQ..SIGYCOMP,DISP=SHR
//SYSLIB DD DSN=&DSCTLIB,DISP=SHR
// DD DSN=&INDEX..SDFHCOB,DISP=SHR
// DD DSN=&INDEX..SDFHMAC,DISP=SHR
// DD DSN=&INDEX..SDFHSAMP,DISP=SHR
//SYSPRINT DD SYSOUT=&OUTC
//SYSIN DD DSN=&&SYSCIN,DISP=(OLD,DELETE)
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),
// UNIT=&WORK,SPACE=(80,(250,100))
//SYSUT1 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT2 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT3 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT4 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT5 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT6 DD UNIT=&WORK,SPACE=(460,(350,100))
//*
//LKED EXEC PGM=IEWL,REGION=®,
// PARM='&LNKPARM',COND=(5,LT,COB)
//SYSLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR
// DD DSN=&LE370HLQ..SCEELKED,DISP=SHR
//SYSLMOD DD DSN=&PROGLIB,DISP=SHR
//SYSUT1 DD UNIT=&WORK,DCB=BLKSIZE=1024,
// SPACE=(1024,(200,20))
//SYSPRINT DD SYSOUT=&OUTC
//SYSLIN DD DSN=&©LINK,DISP=(OLD,DELETE)
// DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//PEND
//*
使用 CALL DLI 接口的联机程序
- 指定转换程序选项 CICS ,但不指定转换程序选项 DLI。注: 对于不使用 CICS 命令且仅由正在运行的事务 (并且从不直接由 CICS 任务启动) 调用的程序,不需要转换程序步骤。
- 接口模块 DFHDLIAI 由链接编辑自动包含。 如果在链接编辑输入中使用 INCLUDE 语句,请将其放在对象卡片组 之后 。
- 在程序中包含副本 DLIUIB。
- 将链接编辑 (由 SYSLMOD DD 语句定义) 中的装入模块输出放在 CICSTS54中。CICS.SDFHLOAD 或用户定义的应用程序库。
使用 EXEC DLI 命令的批处理程序或 BMP 程序
- 需要转换程序选项 DLI。 请勿指定转换程序选项 CICS。
- 接口模块的 INCLUDE 语句必须 跟随 链接编辑 (由 SYSLIN DD 语句定义) 输入中的对象卡片组。 位于 IMS.RESLIB上的接口模块 DFSLI000对于所有编程语言都相同。 如果包含 CICSTS54。链接编辑 (由 SYSLIB DD 语句定义) 的输入中的 CICS.SDFHLOAD 将其 连接到 IMS.RESLIB。
- 将来自链接编辑 (由 SYSLMOD DD 语句定义) 的装入模块输出放在 IMS.PGMLIB或在批处理作业流的 STEPLIB DD 语句中并置的库。
使用 DL/I CALL 命令的批处理程序或 BMP 程序
如果要准备使用 DL/I CALL 接口的汇编程序, COBOL 或 PL/I 程序,请不要使用 CICS 提供的过程。 包含 CALL ASMTDLI , CALL CBLTDLI 或 CALL PLITDLI 的程序应该作为 IMS 应用程序进行组装或编译以及链接编辑,并且不受任何 CICS 需求的限制。 有关如何准备使用 DL/I CALL 接口的应用程序的信息,请参阅相关 IMS 手册。