使用您自己的作业流

您可以使用提供的编目过程作为模型来编写自己的 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 命令的联机程序

  1. 始终使用转换程序选项 CICS。 如果程序发出 EXEC DLI 命令,请使用转换程序选项 DLI。
  2. 链接编辑输入 (由 SYSLIN DD 语句定义) 必须在对象层 之前 包含正确的接口模块。 因此,请在对象层之前放置接口模块的 INCLUDE 语句。 还将 ORDER 语句放在 INCLUDE 语句之前,并将 ENTRY 语句放在所有 INCLUDE 语句之后。
    接口模块如下:
    DFHEAI
    汇编语言
    DFHELII
    所有 HLL 语言
    在 CICS 提供的过程中,链接编辑步骤 (由 SYSLIN DD 语句定义) 的输入将库成员与对象层并置。 此成员包含必需接口模块的 INCLUDE 语句。 例如, DFHYITVL 过程并置库成员 DFHEILID ,其中包含以下 INCLUDE 语句:
     INCLUDE SYSLIB(DFHELII)
  3. 将链接编辑 (由 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=&REG

//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=&REG,
// 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=&REG,
// 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=&&COPYLINK,DISP=(OLD,DELETE)
// DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//PEND
//*

使用 CALL DLI 接口的联机程序

  1. 指定转换程序选项 CICS ,但不指定转换程序选项 DLI。
    注: 对于不使用 CICS 命令且仅由正在运行的事务 (并且从不直接由 CICS 任务启动) 调用的程序,不需要转换程序步骤。
  2. 接口模块 DFHDLIAI 由链接编辑自动包含。 如果在链接编辑输入中使用 INCLUDE 语句,请将其放在对象卡片组 之后
  3. 在程序中包含副本 DLIUIB。
  4. 将链接编辑 (由 SYSLMOD DD 语句定义) 中的装入模块输出放在 CICSTS54中。CICS.SDFHLOAD 或用户定义的应用程序库。

使用 EXEC DLI 命令的批处理程序或 BMP 程序

  1. 需要转换程序选项 DLI。 请勿指定转换程序选项 CICS。
  2. 接口模块的 INCLUDE 语句必须 跟随 链接编辑 (由 SYSLIN DD 语句定义) 输入中的对象卡片组。 位于 IMS.RESLIB上的接口模块 DFSLI000对于所有编程语言都相同。 如果包含 CICSTS54。链接编辑 (由 SYSLIB DD 语句定义) 的输入中的 CICS.SDFHLOAD 将其 连接到 IMS.RESLIB。
  3. 将来自链接编辑 (由 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 手册。