CICS Db2 程序准备
您可以使用 Db2 界面准备您的 CICS® Db2® 程序,也可以提交自己的 JCL 进行批处理。
图 1 中显示的步骤总结了在应用程序设计和编码完成后如何准备程序以供执行。图 1。 准备访问 Db2 的 CICS 应用程序的步骤
有关此过程中各个阶段的概述,请参阅 概述: 使 CICS 应用程序能够访问 Db2。
准备访问 Db2的 CICS 应用程序时:
- 预编译器 Db2 预编译器(步骤 1)会创建一个 DBRM,其中包含程序中每条 SQL 语句的相关信息。 它还会验证程序中的 SQL 语句。 有关使用 Db2 预编译器的相关信息,请参见.NET Framework 3.0。
- 如果源程序是用 PL/I 编写的,则步骤 1(预编译器)的输入是 宏阶段(如果使用)的输出。 Db2 预编译器的输入是 PL/I 宏阶段(如果使用)的输出。
- 您可以按任一顺序运行步骤 1 , Db2 预编译器和步骤 2 ( CICS 命令语言转换程序)。 显示的序列是首选方法,它是 DB2I 程序准备面板支持的方法。 如果首先运行 CICS 命令语言转换程序,那么它会针对它迂到的每个 EXEC SQL 语句生成一条警告消息,但这些消息不会影响结果。
- 如果使用的 Language Environment® 编译器( COBOL 和 PL/I )集成了 CICS 翻译器,则 EXEC CICS 命令(步骤 2)的翻译将在程序编译(步骤 3)时进行。 有关 CICS 集成翻译器和支持该翻译器的编译器的更多信息,请参阅翻译和编译。
- 如果您使用符合 Language Environment 标准的 COBOL 或 PL/I 编译器之一编写 COBOL 或 PL/I 程序,编译器也会提供 SQL 语句协处理器(生成 DBRM),因此您无需使用单独的 Db2 预编译器(步骤 1)。 有关使用 SQL 语句协处理器的更多信息,请参阅。
- 在程序的链接编辑 (步骤 4) 中,包含适用于您编码语言的相应 CICS EXEC 接口模块或存根以及 CICS Db2 语言接口模块 DSNCLI。 CICS EXEC 接口模块 必须 首先包含在装入模块中。 您可以以 24 位或 31 位寻址方式 (AMODE=31) 将 DSNCLI 与程序链接。 如果应用程序以 31 位寻址方式运行,那么应使用属性 AMODE=31 和 RMODE=ANY 将 DSNCLI 存根链接到应用程序,以便应用程序可以在 16MB以上运行。
- 绑定过程 (步骤 5) 需要 Db2。 绑定过程使用 DBRM 来生成应用程序计划 (通常称为计划) ,以使程序能够访问 Db2 数据。 使用同一条目线程的一组事务 (换言之,在同一 DB2ENTRY中指定) 必须使用同一应用程序计划。 它们的 DBRM 必须绑定到同一应用程序计划中,或者绑定到随后列示在同一应用程序计划中的包中。
表 1 列出了准备 CICS 所需的任务。 Db2 程序,具体取决于程序的语言和您的 Db2 :
| Db2 版本和程序语言 | 步骤 1 (SQL 语句处理) | 步骤 2 (CICS 命令转换) | 步骤 3 (程序编译) | 步骤 4 (链接编辑) | 步骤 5 (绑定) |
|---|---|---|---|---|---|
| Db2 V 7 (或更高版本) 和汇编程序 | Db2 预编译器 | CICS提供的独立转换程序 | 语言编译器 | 使用 EXEC 接口和 DSNCLI 进行链接编辑 | 绑定过程 |
| Db2 第 7 版 (或更高版本)和 PL/I | 支持集成 CICS 转换程序和 SQL 语句协处理器的语言编译器 | 使用 EXEC 接口和 DSNCLI 进行链接编辑 | 绑定过程 | ||
| Db2 第 7 版 (或更高版本)和 COBOL | 支持集成 CICS 转换程序和 SQL 语句协处理器的语言编译器 | 使用 EXEC 接口和 DSNCLI 进行链接编辑 | 绑定过程 | ||
| Db2 V 7 (或更高版本) 和其他语言 | Db2 预编译器 | CICS提供的独立转换程序 | 语言编译器 | 使用 EXEC 接口和 DSNCLI 进行链接编辑 | 绑定过程 |
您可以通过使用 Db2 界面或提交自己的 JCL 来准备 CICS Db2 程序,以便批量执行。
- Db2 界面: DB2I 提供了预编译、编译或组装、链接编辑应用程序以及绑定计划的面板。 有关申请程序准备的详细信息,请参见.NET Framework 3.0。
- 提交批处理执行的用户 JCL:库 SDSNSAMP 中的成员 DSNTEJ5C 和 DSNTEJ5P 包含为 准备 和 程序所需的 JCL 样本。 Db2 SDSNSAMP 库中的成员 COBOL 和 CICS 包含为 准备 和 PL/I 程序所需的 JCL 样本。
如果在 CICS 正在运行时准备要执行的程序,那么可能需要发出 CEMT NEWCOPY 命令以使新版本的程序为 CICS所知。
向应用程序发送 SQL 消息
COBOL 应用程序可以使用 SQLCODE 消息格式化存储过程 DSNTIAR 来获取更多有关 SQL 错误代码的信息。 如果 CICS 应用程序需要 CICS 存储处理,则必须使用子程序 DSNTIAC 而不是 DSNTIAR。
CICS 前端部分 DSNTIAC 作为 Db2 库 SDSNSAMP 中的源成员提供。
在 CSD 上的 IBM® 提供的组 DFHDB2 中提供了 DSNTIAC 和 DSNTIA1 的必需程序定义。 必须将 SDSNLOAD 库添加到 CICS DFHRPL 并置 (在 CICS 库之后) ,以便可以装入 DSNTIA1 。
详情请参见。