SUBSYS = (LOGR , DFHLGCNV , ...) 关键字

如果您正在使用批处理作业来读取日志流数据,请确保它包含 SUBSYS 关键字作为其输入或数据 DD 的一部分。

SUBSYS = (LOGR , DFHLGCNV , ...) 关键字
具有 图 1中描述的格式和语法:
图 1。 日志流 SUBSYS 数据集规范
//ddname   DD  DSNAME=log_stream_name,
//           SUBSYS=

其中 SUBSYS 展开如下:

子系统

读取语法图跳过可视语法图SUBSYS=( LOGR,DFHLGCNV ,OP1,LASTRUN,DELETE,COMPAT41,COMPAT41V,SETBRCUR,REPBRCUR,DELBRCUR )
OP1
读取语法图跳过可视语法图OP2OP3DURATION=(Nnnn 和 HOURS)GMTLOCAL
OP2
读取语法图跳过可视语法图 FROM=YYYY/DDD,hh:mm:ssOLDEST
OP3
读取语法图跳过可视语法图 TO=YYYY/DDD,hh:mm:ssYOUNGEST
注: 在选项中使用非字母数字字符时,需要用引号将 SUBSYS-options1 和 SUBSYS-options2 括起来。 当选项由单个关键字组成时,它们不是必需的。

将验证其他 DD 关键字 (如果指定) ,但将忽略这些关键字。

DSNAME=log_stream_name
指定要读取的日志流的名称。 在数据集名称格式中,名称可以是 1 到 26 个字符。
SUBSYS = (LOGR [,exit_routine_name] [,‘SUBSYS-options1'] [,‘SUBSYS-options2'])
指定此 DD 的处理将由 LOGR 子系统处理。
exit_routine_name
exit_routine_name是第二个位置参数,用于指定从 MVS 系统日志记录器接收控制的退出例程名称。 对于由 CICS®编写的日志流,出口例程名称应指定为 DFHLGCNV。

CICS 支持多个 CICS 系统生成的日志流 (典型示例为正向恢复日志流)。 此类日志流可以包含由 CICS的不同发行版生成的日志记录。 为了确保所有可能的 CICS 日志记录类型的向下兼容性,请确保针对日志流运行的批处理作业引用最高级别的 DFHLGCNV (及其关联模块 DFHGTCNV)。 由于 DFHLGCNV 和 DFHGTCNV 位于 SDFHLINK 库中,因此 MVS 链接列表应引用 MVS 区域上 CICS 最高发行版的 SDFHLINK 库,以便批处理作业始终使用最高可用版本的 DFHLGCNV 和 DFHGTCNV。

注: 省略 exit_routine 参数不是 CICS支持的编程接口,以便以日志记录存储在日志流中的形式读取日志记录。
SUBSYS-options1
指定对所有出口例程有意义的选项。
注: 如果需要多个选项,那么需要在每组选项周围使用引号,并且选项集应以逗号分隔。 当只需要一个选项时,不需要引号。 例如,编码 SUBSYS=(LOGR,DFHLGCNV,TO=(,12:00),COMPAT41) 仅使用一个 SUBSYS-options1 选项和一个 SUBSYS-options2 选项,因此它不需要引号。 但是,编码 SUBSYS=(LOGR,DFHLGCNV,'TO=(,12:00),GMT','COMPAT41,SETBRCUR') 使用两个 SUBSYS-options1 选项和两个 SUBSYS-options2 选项。 每个选项集都使用引号,选项集之间用逗号分隔。
'FROM = {([yyyy/ddd] [,hh: mm[:ss]]) |老人}'
指示要处理的第一个日志流块的开始时间。 处理的第一个块将是时间戳记大于或等于指定时间的块。
最旧
指示读取的第一个块将是日志流中最旧的块。 如果省略 FROM= 关键字,那么缺省值为之最旧。
yyyy/ddd
指定开始日期。 如果省略开始日期,那么将采用当前日期。

yyyy 是四位数的年号, ddd 是从 001 到 366 的三位数的日号 (366 仅在闰年有效)。 例如, 2000 年 2 月 20 日代码为 2000/051 , 1996 年 12 月 31 日代码为 1996/366。

hh:mm [:ss]
指定开始时间。 如果省略时间,那么将使用午夜后写入的第一个块。

hh 是从 00 到 23 的 2 数字小时数字, mm 是从 00 到 59 的 2 数字分钟数字, ss 是从 00 到 59 的 2 数字秒数字。 如果日志流所有者不需要,那么可以省略秒数字段和关联的定界符。

FROM= 关键字与 DURATION= 关键字互斥,并且在指定 DELETE 关键字时不允许该关键字。

注: 时间是 GMT 或本地时间,如 GMT | LOCAL 关键字中所选择。
'TO = {([yyyy/ddd] [,hh: mm[:ss]]) |最为年轻的}'
指示要处理的最后一个日志流块的结束时间。 最后一个块将是时间戳记小于或等于指定时间的块。
最年轻
指示发生 DD 分配时,最后读取的块将是日志流上最年轻的块。 如果未指定 TO= 关键字,那么缺省值为最为年轻。
yyyy/ddd
指定结束日期。 如果省略日期,那么将采用当前日期。

yyyy 是四位数的年号, ddd 是从 001 到 366 的三位数的日号 (366 仅在闰年有效)。 例如,代码 2001 年 3 月 7 为 2001/066 ,代码 2000 年 11 月 12 日为 2000/317。

hh:mm [:ss]
指定结束时间。 如果省略时间,那么将使用午夜前写入的最后一个块。 如果结束日期与当前日期相同,那么在发生 DD 分配时,系统将使用日志流上最年轻的块。

hh 是从 00 到 23 的 2 数字小时数字, mm 是从 00 到 59 的 2 数字分钟数字, ss 是从 00 到 59 的 2 数字秒数字。 如果日志流所有者不需要,那么可以省略秒数字段和关联的定界符。

TO= 关键字与 DURATION= 关键字互斥。

注: 日志流浏览的方向是从最旧 (FROM =) 到最年轻 (TO =)。 如果为 FROM= 指定的值大于为 TO= 指定的值,那么作业步骤将因 JCL 错误而终止。

时间为 GMT 或本地时间,如 GMT | LOCAL 关键字中所选择。

'DURATION = (nnnn, HOURS)'
DURATION 关键字是另一种请求要处理哪些块的方法。 每个 "n" 都是从 0 到 9 的数字。 (nnnn , HOURS) 请求 "最近 nnnn 个小时" 的块,直到要处理的最小块为止。 "最近 nnnn 小时" 是从 DD 分配的当前时间开始计算的。

第一个块将是时间戳记大于或等于计算的开始时间的块。 上次读取的块将是发生 DD 分配时日志流上最年轻的块。

DURATION= 关键字与 TO=FROM= 关键字互斥。

GMT| 本地
指定时间是本地时间还是 GMT 时间。 GMT 是缺省值。
SUBSYS-options2
指定出口例程唯一选项。 表 1 显示了受支持的 SUBSYS-options2 选项的组合。
注: 如果需要多个选项,那么需要在每组选项周围使用引号,并且选项集应以逗号分隔。 当只需要一个选项时,不需要引号。 例如,编码 SUBSYS=(LOGR,DFHLGCNV,TO=(,12:00),COMPAT41) 仅使用一个 SUBSYS-options1 选项和一个 SUBSYS-options2 选项,因此它不需要引号。 但是,编码 SUBSYS=(LOGR,DFHLGCNV,'TO=(,12:00),GMT','COMPAT41,SETBRCUR') 使用两个 SUBSYS-options1 选项和两个 SUBSYS-options2 选项。 每个选项集都使用引号,选项集之间用逗号分隔。

使用出口例程 DFHLGCNV 时对 CICS 日志流有效的选项包括:

LASTRUN
指示要从日志流读取的记录的起始点来自先前使用 LASTRUN 的批处理程序读取的最后一条记录。 记录的端点指向日志流中最年轻的块。

LASTRUN 与 SUBSYS-options1中的 FROM , TO 和 DURATION 关键字互斥。

注: 只有最后一个运行点与日志流相关联。 例如,不能在每日日志流处理作业和每周运行的作业上指定 LASTRUN

使用 SETBRCUR , REPBRCUR 和 DELBRCUR 选项进行日志流处理。 有关如何执行此操作的更多信息,请参阅 使用 SETBRCUR , REPBRCUR 和 DELBRCUR 选项进行日志流处理

DELETE
指示要从日志流中删除日志流记录。 日志流本身未被删除,并且仍可供使用。

如果已在作业步骤中打开日志流,那么将从日志流中删除直至 (包括程序读取的最后一个完整块) 的所有记录。

如果未在作业步骤中打开日志流,那么将从日志流中删除 TO= 时间之前的所有记录。

注: 在未打开的日志流上删除记录的方法比在已打开的日志流上删除记录要快得多。

如果不删除未处理的记录很重要,请将 DELETE 关键字作为条件作业步骤的一部分; 请参阅 DFHJUP 程序: 示例 2

COMPAT41 或 COMPAT41V
如果要对需要尽可能以 CICS Transaction Server for OS/390®V 1 Release 1 中引入的格式显示记录的日志流运行应用程序,请指定 COMPAT41 选项。 对于 COBOL 应用程序,请指定 COMPAT41V 选项。 这将确保以正确的变量分块格式显示记录。

或者,您可以尽可能以 CICS/ESA 4.1所使用的格式创建具有正确 DCB 信息和记录的新数据集。 为此,请运行 DFHJUP ,指定 COMPAT41 选项 (而不是 COMPAT41V 选项) ,并在 OPTION COPY 命令上指定 NEWDCB 选项。 (请参阅 DFHJUP 的实用程序控制语句 ,以获取有关使用 NEWDCB 创建新数据集的更多信息。) 然后,可以针对此新数据集运行需要 COMPAT41 格式的记录的批处理应用程序。 请注意,创建新数据集后,批处理应用程序不需要在运行时指定 COMPAT41 或 COMPAT41V 选项。

设置 BRCUR
指示要从日志流读取的记录的起始点是上次设置已删除游标的位置 (由使用 DELBRCUR 选项的批处理程序)。 将记录从已删除的光标读取到日志流中最年轻的块,或者读取到您指定的其他位置 (例如,使用 TO 关键字)。 读取所需记录后,浏览的光标位于上次读取的记录处。

要确保您在运行每个使用 SETBRCUR 选项的作业之后两次读取相同的记录,请使用 DELBRCUR 选项运行一个作业来删除浏览过的记录,并将删除的光标重新定位在上次删除的记录上。 如果不重新定位已删除的游标,那么使用 SETBRCUR 的任何后续作业将开始从与第一个作业相同的记录中读取。

如果要两次读取同一组记录,请使用 SETBRCUR 选项运行作业,然后使用 REPBRCUR 选项运行作业。 此作业组合将生成完全相同的记录的两个副本,例如,您可以生成不同格式的相同记录的两个副本。

请勿将 SETBRCUR 选项与 DELETE 或 LASTRUN 选项配合使用。

REPBRCUR
指示将从日志流中读取记录,从上次设置已删除游标的位置 (由使用 DELBRCUR 选项的批处理程序) 到上次设置已浏览游标的位置 (由使用 SETBRCUR 选项的批处理程序)。 它会重复上次使用 SETBRCUR 选项运行批处理程序时处理的完全相同的数据,前提是自该读取以来未移动已删除的游标。 不通过使用 REPBRCUR 选项运行批处理程序来更改已删除的游标和已浏览的游标。

REPBRCUR 选项可用于生成相同记录的第二个副本,可能采用与原始处理生成的格式不同的格式。 为此,请使用 SETBRCUR 选项运行作业,后跟使用 REPBRCUR 选项的作业。

请勿将 REPBRCUR 选项与 DELETE 或 LASTRUN 选项配合使用。

增量 CUR
指示将从日志流中删除日志流记录,直到上次设置浏览光标的位置 (由使用 SETBRCUR 选项的批处理程序)。 删除所需记录后,将在设置浏览光标的位置放置已删除的光标。

要确保您在运行使用 SETBRCUR 选项的每个作业之后两次不读取相同的记录,请使用 DELBRCUR 选项运行作业以重新定位已删除的游标。 如果不重新定位已删除的游标,那么使用 SETBRCUR 的任何后续作业将开始从与第一个作业相同的记录中读取。 如果要两次读取同一组记录,请先使用 REPBRCUR 选项运行作业,然后使用 DELBRCUR 选项运行作业以重新定位已删除的游标。

请勿将 DELBRCUR 选项与任何其他选项配合使用。

表 1 显示了受支持的 SUBSYS 选项的组合。 在表的每行中,可以使用所显示选项的任意组合,包括全部或全部选项。 此规则的例外是与时间相关的选项 TO , FROM 和 DURATION。 可以将 TO 与 FROM 配合使用,将 FROM 与 DURATION 配合使用,但不能将 TO 与 DURATION 配合使用。 您可以自行使用任何与时间相关的选项。

SETBRCUR , REPBRCUR 和 DELBRCUR 是日志流脱机处理的建议选项,例如用于归档目的。 有关更多信息,请参阅 使用 SETBRCUR , REPBRCUR 和 DELBRCUR 选项进行日志流处理

表 1. SUBSYS-选项的组合
起点 兼容性 删除 时间
  COMPAT41   TO , FROM 或 DURATION
  COMPAT41V   TO , FROM 或 DURATION
LASTRUN COMPAT41   TO 或 DURATION
LASTRUN COMPAT41V   TO 或 DURATION
设置 BRCUR COMPAT41   TO 或 DURATION
设置 BRCUR COMPAT41V   TO 或 DURATION
REPBRCUR COMPAT41    
REPBRCUR COMPAT41V    
    DELETE TO 或 DURATION
    增量 CUR