IMS DB - 编程



包含 DL/I 调用的应用程序程序不能直接执行。相反,需要一个 JCL 来触发 IMS DL/I 批处理模块。IMS 中的批处理初始化模块是 DFSRRC00。应用程序程序和 DL/I 模块一起执行。下图显示了包含 DL/I 调用以访问数据库的应用程序程序的结构。

DL Module

应用程序程序通过以下程序元素与 IMS DL/I 模块交互:

  • ENTRY 语句指定程序使用 PCB。

  • PCB 掩码与预先构建的 PCB 中保存的信息相关联,该 PCB 从 IMS 接收返回信息。

  • 输入输出区域用于将数据段传递到 IMS 数据库和从 IMS 数据库传递数据段。

  • 对 DL/I 的调用指定处理功能,例如获取、插入、删除、替换等。

  • 检查状态代码用于检查指定处理选项的 SQL 返回代码,以告知操作是否成功。

  • 终止语句用于结束包含 DL/I 的应用程序程序的处理。

段布局

到目前为止,我们了解到 IMS 由段组成,这些段在高级编程语言中用于访问数据。考虑一下我们之前见过的图书馆的 IMS 数据库结构,在这里我们看到其段在 COBOL 中的布局:

Layout

01 LIBRARY-SEGMENT.
   05 BOOK-ID        PIC X(5).
   05 ISSUE-DATE     PIC X(10).
   05 RETURN-DATE    PIC X(10).
   05 STUDENT-ID     PIC A(25).
	
01 BOOK-SEGMENT.
   05 BOOK-ID        PIC X(5).
   05 BOOK-NAME      PIC A(30).
   05 AUTHOR         PIC A(25).
	
01 STUDENT-SEGMENT.
   05 STUDENT-ID     PIC X(5).
   05 STUDENT-NAME   PIC A(25).
   05 DIVISION       PIC X(10).

应用程序程序概述

IMS 应用程序程序的结构与非 IMS 应用程序程序的结构不同。IMS 程序不能直接执行;它总是作为子程序调用。IMS 应用程序程序包含程序规范块 (PSB),以提供 IMS 数据库的视图。

当我们执行包含 IMS DL/I 模块的应用程序程序时,将加载应用程序程序和与该程序链接的 PSB。然后,IMS 模块执行应用程序程序触发的 CALL 请求。

IMS 服务

应用程序程序使用以下 IMS 服务:

  • 访问数据库记录
  • 发出 IMS 命令
  • 发出 IMS 服务调用
  • 检查点调用
  • 同步调用
  • 向在线用户终端发送或接收消息
广告