DFSPOOL 宏返回码

IMS 存储池管理器由各种内部模块调用,以提供存储管理服务。 DFSPOOL 宏作为存储池的接口提供。 DFSPOOL 返回寄存器 15 中的所有返回码。 所有返回码都是十六进制数字。

从 DFSPOOL GET 请求返回后,注册 15 包含格式为 xxxxyyyy的返回码。 低 16 位 ( yyyy) 包含来自 DFSPOOL 的返回码。 The high 16 bits, Xxxx, contain the IMODULE return code if an IMODULE error was detected.

DFspool 分配
ALLOC 函数允许调用者分配一个或多个预定义的 IMS 存储池。
返回码
含义
00
已成功分配存储池。
04
已忽略该池; 已设置 PALCNULL ("FF")。
08
传递了重复的池名称。 该池名称存在于散列表中。
0C
请求的池的分配已在进行中。
10
无法分配一个或多个主块。
20
在 DFSSPM10中找不到所请求池的池定义。
24
尝试分配池头时 Imodule GETMAIN 失败。
28
为变量池指定的大小为零。
2C
尝试分配变量池时, Imodule GETMAIN 失败。
30
尝试分配 FAQE 存储器时, Imodule GETMAIN 失败。
34
要分配的主块的累积大小超过可供池使用的最大存储空间。
44
尝试分配工作区时, Imodule GETMAIN 失败。
A0
传递到存储管理器的函数代码无效。
注: 对于小于 X'20 '的返回码,已分配池头,可以从池中获取缓冲区。 对于返回码 X'20 ' 或更高版本,无法分配一个或多个池。
DFSPOOL 获取
GET 函数允许调用者从先前分配的其中一个存储池获取缓冲区。
返回码
含义
00
已成功分配缓冲区。
04
如果满足请求,那么将超过池的上限。 由于调用者指定了 WAIT = NO ,因此存储管理器立即返回给调用者。 未分配缓冲区。
08
如果满足请求,那么将超过池的上限。 由于调用者指定了 WAIT = YES ,因此存储管理器允许调用者等待并进行额外的存储器尝试。 但是,调用者等待了最长时间,并且存储器仍然不可用。 未分配缓冲区。
0C
尝试获取新的存储器块时, Imodule GETSTOR 失败。 返回码包含高 2 字节的 IMODULE 返回码和低 2 字节的存储管理器返回码。
20
存储池位于专用存储器中,但调用者不在同一地址空间中运行。
28
无法满足缓冲区请求。 请求大小超过可用存储器。
24
缓冲区请求大小等于或小于零。
A0
传递到存储管理器的函数代码无效。
A4
传递到存储管理器的池名称无效。
DFspool 关系
REL 函数允许调用者将缓冲区返回到现有存储池。
返回码
含义
00
已成功释放缓冲区。
A0
传递到存储管理器的函数代码无效。
A4
传递到存储管理器的池名称无效。