包含DL/I调用的应用程序无法直接执行.相反,需要JCL来触发IMS DL/I批处理模块. IMS中的批量初始化模块是DFSRRC00.应用程序和DL/I模块一起执行.下图显示了应用程序的结构,其中包括用于访问数据库的DL/I调用.
应用程序通过以下程序元素与IMS DL/I模块连接 :
ENTRY语句指定程序使用PCB.
PCB掩模与预先保存的信息相关联构造的PCB从IMS接收返回信息.
输入输出区域用于将数据段传入和传出IMS数据库.
调用DL/I指定处理功能,如提取,插入,删除,替换等.
检查状态代码用于检查指定的处理选项的SQL返回码,以通知操作是否成功.
终止语句是我们ed结束包含DL/I的应用程序的处理.
截至目前,我们了解到IMS包含用于高级编程语言的段以访问数据.考虑我们之前看到的库的以下IMS数据库结构,在这里我们看到它在COBOL中的段的布局:
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应用程序由程序规范块组成,以提供IMS数据库的视图.
当我们执行包含IMS的应用程序时,加载应用程序和链接到该程序的PSB DL/I模块.然后由IMS模块执行由应用程序触发的CALL请求.
应用程序使用以下IMS服务 :
访问数据库记录
发布IMS命令
发出IMS服务电话
检查点电话
同步电话
从在线发送或接收消息用户终端