IMS DB - PCB 掩码

PCB 代表程序通信块。PCB 掩码是 DL/I 调用中使用的第二个参数。它在链接部分中声明。下面给出了 PCB 掩码的语法−

01 PCB-NAME.
   05 DBD-NAME         PIC X(8).
   05 SEG-LEVEL        PIC XX.
   05 STATUS-CODE      PIC XX.
   05 PROC-OPTIONS     PIC X(4).
   05 RESERVED-DLI     PIC S9(5).
   05 SEG-NAME         PIC X(8).
   05 LENGTH-FB-KEY    PIC S9(5).
   05 NUMB-SENS-SEGS   PIC S9(5).
   05 KEY-FB-AREA      PIC X(n).

以下是需要注意的要点 −

  • 对于每个数据库,DL/I 都会维护一个存储区域,称为程序通信块。它存储有关在应用程序内部访问的数据库的信息。

  • ENTRY 语句在链接部分中的 PCB 掩码和程序 PSB 中的 PCB 之间创建连接。DL/I 调用中使用的 PCB 掩码会告知要使用哪个数据库进行操作。

  • 您可以假设这类似于在 COBOL READ 语句中指定文件名或在 COBOL write 语句中指定记录名称。不需要 SELECT、ASSIGN、OPEN 或 CLOSE 语句。

  • 每次 DL/I 调用后,DL/I 都会在 PCB 中存储一个状态代码,程序可以使用该代码来确定调用是成功还是失败。

PCB 名称

注意事项 −

  • PCB 名称是指 PCB 字段的整个结构的区域的名称。

  • PCB 名称用于程序语句。

  • PCB 名称不是 PCB 中的字段。

DBD 名称

注意事项 −

  • DBD 名称包含字符数据。它有八个字节长。

  • PCB 中的第一个字段是正在处理的数据库的名称,它提供与特定数据库关联的数据库描述库中的 DBD 名称。

段级别

注意事项 −

  • 段级别称为段层次级别指示器。它包含字符数据,长度为两个字节。

  • 段级别字段存储已处理的段的级别。成功检索到某个段后,检索到的段的级别编号将存储在此处。

  • 段级别字段的值永远不会大于 15,因为这是 DL/I 数据库中允许的最大级别数。

状态代码

注意事项 −

  • 状态代码字段包含两个字节的字符数据。

  • 状态代码包含 DL/I 状态代码。

  • 当 DL/I 成功完成调用处理时,空格将移动到状态代码字段。

  • 非空格值表示调用不成功。

  • 状态代码 GB 表示文件结尾,状态代码 GE 表示未找到请求的段。

Proc 选项

注意事项 −

  • Proc 选项被称为包含四个字符数据字段的处理选项。

  • 处理选项字段指示程序有权对数据库执行哪种处理。

保留 DL/I

注意事项 −

  • 保留 DL/I 被称为 IMS 的保留区域。它存储四个字节的二进制数据。

  • IMS 将此区域用于与应用程序相关的内部链接。

段名称

注意事项 −

  • SEG 名称称为段名称反馈区域。它包含 8 个字节的字符数据。

  • 每次 DL/I 调用后,段的名称都会存储在此字段中。

FB 密钥长度

注意事项 −

  • FB 密钥长度称为密钥反馈区域的长度。它存储四个字节的二进制数据。

  • 此字段用于报告上次调用期间处理的最低级别段的连接密钥的长度。

  • 它与密钥反馈区域一起使用。

敏感段数

注意事项 −

  • 敏感段数存储四个字节的二进制数据。

  • 它定义应用程序对哪个级别敏感。它表示逻辑数据结构中的段数。

密钥反馈区域

注意事项 −

  • 密钥反馈区域的长度因 PCB 而异。

  • 它包含可与程序的数据库视图一起使用的最长的连接密钥。

  • 在数据库操作之后,DL/I 返回在此字段中处理的最低级别段的连接密钥,并返回密钥长度反馈区域中密钥的长度。