GET CONTAINER (BTS)
从指定的 BTS 数据容器检索数据。
语法
条件: ACTIVITYERR , CONTAINERERR , INVREQ , IOERR , ENGERR , LOCKED 和 PROCESSBUSY
NOHANDLE、RESP 和 RESP2是常用选项,可添加到所有 EXEC CICS 命令中以处理错误条件。 命令语法图和选项说明中没有明确包含这些选项。 有关这些常用选项和 EXEC CICS 命令语法的信息,请参阅 EXEC CICS 命令格式和编程注意事项.
描述
GET CONTAINER 将与指定 BTS 活动或进程关联的数据读取到工作存储器中。
保存数据的容器由名称以及作为其容器的流程或活动 (拥有该数据的流程或活动) 标识。 可以标识拥有容器的活动:
- 通过指定其中一个与 PROCESS 或 ACTIVITY 相关的选项显式地执行此操作。
- 通过省略与 PROCESS 和 ACTIVITY 相关的选项来隐式执行此操作。 如果省略这些活动,那么将隐含当前活动。
另请参阅 PUT CONTAINER (BTS) 和 移动容器 (BTS)。
选项
- ACQACTIVITY
- 指定以下任一项:
- 如果发出该命令的程序已获取进程,那么该容器由该进程的根活动拥有。
- 否则,该容器由程序通过获取 ACTIVITYID 命令获取的活动所拥有。
- ACQPROCESS
- 指定容器由发出命令的程序在当前工作单元中获取的进程拥有。
- ACTIVITY (数据值)
- 指定拥有容器的活动的名称 (1-16 个字符)。 这必须是当前活动的子代。
- CONTAINER (数据值)
- 指定保存要检索的数据的容器的名称 (1-16 个字符)。
- FLENGTH (数据区)
- 作为输入字段, FLENGTH 以全字二进制值的形式指定要读取的数据的长度。 作为输出字段, FLENGTH 返回容器中数据的长度。 FLENGTH 是输入还是输出字段取决于您指定的 INTO , SET 或 NODATA 选项。
- 指定了 INTO 选项
- FLENGTH 既是输入字段又是输出字段。
在输入时, FLENGTH 指定程序接受的数据的最大长度。 如果指定的值小于零,那么假定为零。 如果数据的长度超过指定的值,那么会将数据截断为该值,并且会出现 LENGERR 条件。 如果数据的长度小于指定的值,那么将在不进行填充的情况下复制数据,并且会发生 LENGERR 条件。
如果编译器可以从 INTO 变量生成长度,那么不需要指定 FLENGTH。 如果同时指定 INTO 和 FLENGTH ,那么 FLENGTH 指定程序接受的数据的最大长度。
在 输出 (即,完成检索操作时) 上, CICS® 会将数据区 (如果指定) 设置为容器中数据的实际长度。
- 指定了 SET 或 NODATA 选项
- FLENGTH 是仅输出字段。 必须将其指定并指定为数据区。
完成检索操作后,会将数据区设置为容器中数据的实际长度。
- INTO (数据区)
- 指定要将检索到的数据放置到其中的工作存储器区域。
- NODATA
- 指定不检索任何数据。 使用此选项可发现容器中数据的长度 (以 FLENGTH 格式返回)。
- PROCESS
- 指定要检索的容器由当前进程 (即,发出命令的程序代表执行的进程) 拥有。
- SET (ptr-ref)
- 指定返回所检索数据的地址的数据区。 数据区由 CICS 维护,直到任务发出带有 SET 选项的后续 GET CONTAINER 命令为止,或者直到任务结束为止。
如果应用程序需要保留数据,那么应将其移动到自己的存储器中。
条件
- 109 个 ACTIVITYERR
- RESP2 值:
- 8
- 找不到 ACTIVITY 选项上指定的活动。
- 110 集装箱错误
- RESP2 值:
- 10
- 找不到 CONTAINER 选项上指定的容器。
- 16 INVREQ
- RESP2 值:
- 2
- 指定了 INTOCCSID 选项,但未指定 CHANNEL 选项,并且没有当前通道 (因为发出该命令的程序未传递一个)。 INTOCCSID 仅在显式或隐式指定通道的 GET CONTAINER 命令上有效。 它在 GET CONTAINER (BTS) 命令上无效。
- 4
- 该命令是在当前活动活动的作用域之外发出的。
- 15
- 使用了 ACQPROCESS 选项,但发出请求的工作单元尚未获取进程。
- 24
- 使用了 ACQACTIVITY 选项,但发出请求的工作单元尚未获取活动。
- 25
- 使用了 PROCESS 选项,但在当前活动进程的作用域之外发出了该命令。
- 17 IOERR
- RESP2 值:
- 30
- 在存储库文件上发生输入/输出错误。
- 31 日
- 存储库文件上的记录正在使用中。
- 22 LENGERR
- RESP2 值:
- 11
- 程序区域的长度与容器中数据的长度不同。 如果该区域较小,那么将截断数据以将其放入其中。 如果区域较大,那么会将数据复制到程序区域,但不会添加任何填充。
- 100 个已锁定
- 无法执行请求,因为针对存储库文件上的相关记录存在保留锁定。
- 106 进程忙
- RESP2 值:
- 13
- 无法满足请求,因为进程记录已被另一个任务锁定。
