DFHJUP 程序: 示例 2
以下示例显示了将写入 CICS® 常规日志的所有记录复制到输出数据集所需的 JCL 和控制语句。 这些记录将以 CICS/ESA 4.1 格式复制,然后从日志流中删除。
请注意,有两个作业步骤,第一个执行复制步骤,第二个执行删除步骤。 删除步骤取决于复制步骤是否成功完成。 另外,在两个 jobstep 的 SUBSYS 卡上都指定了相同的 TO= 值。 这将确保这两个作业处理相同范围的日志数据。
如果省略了 TO= ,并且允许缺省设置为当前日志流末尾,那么有可能在复制步骤之后但在删除步骤之前将新的日志数据写入日志流; 然后将删除此日志数据。 为避免此情况,建议将相同的 TO= 值用于这两个作业步骤。 此外,为了避免每次提交作业时都必须修改 TO= 值,未指定年份和儒略日期。 这会导致作业缺省为今天的日期。 因此,建议在 TO= 值上指定的时间之后立即提交作业。 应该注意的是,接近午夜的 TO= 值可能会导致问题。 如果复制步骤是在午夜之前运行,而删除步骤是在午夜之后运行,那么 TO= 值将缺省为不同的日期,并且可能会删除未复制的数据。
//JNLCOPY1 JOB (accounting information),CLASS=A
//COPYJNL EXEC PGM=DFHJUP
//STEPLIB DD DSNAME=CICSTS56.CICS.SDFHLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=A,DCB=RECFM=FBA
//SYSUT1 DD DSNAME=CICSAA#.CICSDC1.JRNL001,
// DCB=BLKSIZE=32760,
// SUBSYS=(LOGR,DFHLGCNV,'TO=(,10:00)',COMPAT41)
//SYSUT4 DD DSNAME=EXAMPLE1.COPY1,DISP=(NEW,CATLG),
// UNIT=SYSDA,VOL=SER=USRPAK,
// SPACE=(TRK,(3,1))
//SYSIN DD *
*-----------------------------------------------------*
* CONTROL STATEMENT : DEFAULTS *
* INPUT = SYSUT1 *
* OUTPUT = SYSUT4 *
* SELECTION QUALIFIERS : *
* 1. DEFAULT = ALL INPUT RECORDS *
*-----------------------------------------------------*
OPTION COPY
END
//CHKCOPY IF (COPYJNL.RC = 0) THEN
//IEFBR14 EXEC PGM=IEFBR14
//LOGSTRM DD DSNAME=CICSAA#.CICSDC1.JRNL001,
// SUBSYS=(LOGR,DFHLGCNV,'TO=(,10:00)',DELETE)
//CHKCOPY ENDIF
*-----------------------------------------------------*
/*