SPOOLREAD

SPOOLREAD 命令从系统假脱机程序获取下一个记录。

语法

SPOOLREAD

读取语法图跳过可视语法图SPOOLREADTOKEN( data-area)INTO( data-area)MAXFLENGTH( data-value)TOFLENGTH( data-area)NOHANDLERESPRESP2

条件: ALLOCERR , ENDFILE , ILLOGIC , INVREQ , ENGERR , NOSPOOL , NOSTG , NOTFND , NOTOPEN , SPOLBUSY ,SP接连, STRELERR

NOHANDLERESPRESP2是常用选项,可添加到所有 EXEC CICS 命令中以处理错误条件。 命令语法图和选项说明中没有明确包含这些选项。 有关这些常用选项和 EXEC CICS 命令语法的信息,请参阅 EXEC CICS 命令格式和编程注意事项.

选项

INTO (data-area)
指定可变长度数据的数据区。 它是接收方字段。
MAXFLENGTH (data-value)
指定传输数据的最大长度作为全字二进制变量。 这是用户在输入时设置的。 length 的限制为 32 760 字节。 这是用于读取记录的 CICS® 缓冲区的最大大小。
TOFLENGTH (数据区)
以全字二进制变量的形式指定传输的数据的长度。 这是由 CICS 在输入时设置的。 它是可选的,如果省略它,那么不会通知您接收到的数据的实际长度。
TOKEN (数据区)
指定用于标识报告的 8 字符 CICS分配的令牌。
限制: 必须在 EXEC CICS SPOOLREAD 命令上指定 RESPNOHANDLE 选项。

条件

注: 没有缺省操作。
85 ALLOCERR
在下列任何情况下发生:
  • 动态分配已拒绝用于分配输入数据集的请求。

    RESP2 给出了表示此错误的动态分配响应代码。 前两个字符是信息原因代码(S99INFO),后两个字符是错误原因代码(S99ERROR),如 z/OS MVS 编程中所定义:授权汇编器服务指南

20 个 ENDFILE
在下列任何情况下发生:
  • 已检索正在读取的当前假脱机文件的所有数据。 应继续尽快发出 SPOOLCLOSE 命令,以释放对 JES 单线程的锁定,并终止当前 SYSOUT 数据集处理。
21 不合逻辑
RESP2 值:
3
指定的 CLASS 值无效。
16 INVREQ
RESP2 值:
4
不受支持的语言。
8
不受支持的功能。
12
在文件结束后尝试读取。
24
INTO 缺失。
40
已启用子系统接口。
注: 错误 1024 及以上是内部错误,不应该发生。 如果返回了其中一个错误代码,请与 IBM® 支持中心联系。
22 LENGERR
在下列任何情况下发生:
  • 您提供了足够的缓冲区空间来读取记录,或者请求的缓冲区大小超过允许的最大缓冲区大小 32 760 字节 (用于读取记录的 CICS 缓冲区的大小)。 如果缓冲区空间太小,那么它将接收尽可能多的数据。 然后将截断的数据量放在 RESP2 字段中。 如果指定了 TOFLENGTH 操作数,那么记录的实际长度将放在此处。
    注: 如果由于缓冲区空间不足而发生长度错误,那么直到更正错误并重新读取当前记录之后,才会读取下一条记录。

    RESP2 指示截断的数据量,如果 MAXFLENGTH 字段大于允许的最大缓冲区大小 32 760 字节,那么显示零。

80 个假脱机
RESP2 值:
4
不存在子系统。
8
正在禁用接口; CICS 正在停顿。
12
接口已停止。
42 个 NOSTG
在下列任何情况下发生:
  • 在 JES 接口子任务 (DFHPSPSS) 中 GETMAIN 失败。

    RESP2 给出 GETMAIN 寄存器 15 返回码。

13 NOTFND
RESP2 值:
4
找不到用于检索指定外部写程序名称的数据集。
19 NOTOPEN
RESP2 值:
8
尚未打开数据集。
12
尝试读取输出文件。
1024
子任务 OPEN 宏失败。
88 SPOLBUSY
RESP2 值:
4
接口已由另一个任务使用。
8
接口已由当前任务使用。
在下列任何情况下也会发生 (未设置RESP2 ):
  • JES 接口中的 JES/input 单线程不可用。
89 容错器
在下列任何情况下发生:
  • 子系统接口宏 (IEFSSREQ) 已失败。 未选择输入数据集名称。

    RESP2 提供了 "IEFSSREQ" 响应代码。

86 STRELERR
在下列任何情况下发生:
  • 在 JES 接口子任务 (DFHPSPSS) 中 FREEMAIN 失败。

    RESP2 给出 FREEMAIN 寄存器 15 返回码。