WRITE JOURNALNAME

创建日志记录

WRITE JOURNALNAME

读取语法图跳过可视语法图WRITE JOURNALNAME( data-value)JTYPEID( data-value)FROM( data-area)FLENGTH( data-value)REQID( data-area)PREFIX( data-value)PFXLENG( data-value)WAITNOSUSPEND

条件: INVREQ , IOERR , JIDERR , ENGERR , NOJBUFSP , NOTAUTH 和 NOTOPEN

此命令是线程安全的。

 

描述

WRITE JOURNALNAME 将指定数据区中的日志记录写入对应于 CICS® 日志名称或 SMF 的系统记录器日志流。 该请求可以用于同步或异步输出; 这些术语的定义以及有关日志输出同步的信息位于 日志输出同步 中。

选项

FLENGTH (data-value)
以全字二进制值的形式指定要构建到日志记录中的用户数据的长度 (以字节为单位)。
请注意,日志记录的最大总长度取决于多个因素:
  • 如果日志正在使用 SMF ,那么限制为 32KB 减去 400 字节。
  • 映射到日志流的日志的限制是所使用结构的 MAXBUFSIZE 属性中表示的值减去 400 字节。 这必须包含用户数据,前缀数据和 2 字节 JTYPEID。
注: 使用 SUBSYS=LOGR 接口的脱机作业无法读取长度超过 32K 字节的数据。
FROM (数据区)
指定要构建到日志记录中的用户数据。
JOURNALNAME (data-value)
指定 1-to 8 字符的日志名。 日志名称的有效字符是大写字母 A 到 Z ,数字字符 0 到 9 以及特殊符号 $@ 和 #。

首次引用此日志名称时, CICS 必须能够将日志名称映射到相应的 MVS™ 系统日志日志流或 MVS SMF 数据集。 为此, CICS 会搜索已安装的 JOURNALMODEL 定义,在日志模型中查找匹配的日志名称。 CICS 会查找特定匹配项或通用匹配项。 如果找不到匹配的条目,那么 CICS 会尝试使用缺省日志流名称。

要写入 CICS 系统日志,请指定 DFHLOG 作为日志名称。

注: CICS 系统日志应仅用于恢复所需的短期数据。 您不应该为诸如审计跟踪之类的内容编写用户记录。

要写入使用日志编号约定定义的日志 (例如,写入文件资源定义中定义的自动日志) ,请将名称指定为 DFHJnn,其中 nn 是范围在 1 到 99 之间的日志编号。

除非您写入其匹配的 JOURNALMODEL 与同一日志流名称相关联的日志,否则无法写入 CICS 仅通过其 26 个字符的日志流名称 (直接派生自 VSAM ICF 目录) 来识别的正向恢复日志。

在此命令上指定 DFHJ01 是指用户日志, 不是 系统日志。

JTYPEID (data-value)
指定要放置在日志记录中以标识其源的 2 字符标识。
无暂挂
指定不针对 NOJBUFSP 条件暂挂应用程序。 将忽略用户记录。
PFXLENG (data-value)
指定要包含在日志记录中的用户前缀数据的长度 (半字二进制值) (以字节计)。
请注意,日志记录的最大总长度取决于多个因素:
  • 如果日志正在使用 SMF ,那么限制为 32KB 减去 400 字节。
  • 映射到日志流的日志的限制是所使用结构的 MAXBUFSIZE 属性中表示的值减去 400 字节。 这必须包含前缀数据,用户数据和 2 字节 JTYPEID。
最小值为 0。 请参阅 FLENGTH 以了解日志记录大小的限制。
注: 使用 SUBSYS=LOGR 接口的脱机作业无法读取长度超过 32K 字节的数据。
PREFIX (data-value)
指定要包含在日志记录中的用户前缀数据。 必须在 COBOL 程序中提供数据区。
REQID (data-area)
指定用于标识日志记录的数据区。 数据区是全字二进制变量。 CICS 将变量设置为可用于同步的令牌。 REQID 仅对异步输出有效 (即,未指定 WAIT 选项)。
WAIT
指定需要同步日志输出。 请求任务将一直等待,直到已硬化记录为止。

条件

16 INVREQ
该命令对于 CICS处理无效。

缺省操作: 异常终止任务。

17 IOERR
由于系统记录器日志流或 SMF 返回了不可恢复的错误情况,因此未输出日志记录。

缺省操作: 如果日志是系统日志,那么 CICS 会停顿或异常终止 CICS。 如果该日志是常规日志,那么该任务将异常终止。

43 JIDERR
由于下列其中一个原因, CICS 无法连接到指定日志名称所引用的日志流:
  • 日志流不存在,无法使用缺省模型定义动态创建。
  • 日志流是一个仅 DASD 的日志流,另一个 MVS 映像中的 CICS 区域当前连接到该日志流。

缺省操作: 异常终止任务。

22 LENGERR
包含用户数据 (FROM , JTYPE 和 PREFIX 数据) 和 CICS 头数据的日志记录的聚集长度过大,无法满足日志流所允许的最大块大小。

缺省操作: 异常终止任务。

45 个 NOJBUFSP
日志缓冲区在逻辑上已满 (即,当前缓冲区没有足够的空间用于此日志记录,并且正在备用缓冲区上进行 I/O)。

缺省操作: CICS 暂挂任务活动,直到可以满足日志请求为止。 CICS 确保将两个缓冲区都写出到辅助存储器,从而释放它们以用于新记录。 (您可以通过 NOSUSPEND 选项覆盖缺省操作。)

70 NOTAUTH
JOURNALNAME (data value) 上的资源安全性检查失败。

缺省操作: 异常终止任务。

19 NOTOPEN
在下列任何情况下发生:
  • 无法执行该命令,因为用户已显式禁用指定的日志。
  • 无法满足请求,因为指定的日志是使用将其映射到用作此 CICS 系统的系统日志的日志流的日志模型定义的。 尝试连接到日志流时检测到该错误,并导致安装 JOURNALNAME 的定义并将其设置为 "failed"。

缺省操作: 异常终止任务。

示例

以下示例显示如何写入同步日志输出并等待输出操作完成:
EXEC CICS WRITE
     JOURNALNAME('ACCTSJNL')
     JTYPEID('XX')
     FROM(KEYDATA)
     FLENGTH(40000)
     PREFIX(PROGNAME)
     PFXLENG(6)
     WAIT
以下示例显示如何将延迟 (异步) 用户恢复数据写入 CICS 系统日志:
EXEC CICS WRITE
     JOURNALNAME('DFHLOG')
     JTYPEID('UR')
     FROM(COMDATA)
     FLENGTH(10)
     REQID(ENTRYID)