准备应用程序,以便在 Db2 for z/OS
要准备和运行包含嵌入式静态 SQL 语句或动态 SQL 语句的应用程序,必须处理、编译、链接编辑和绑定 SQL 语句。
准备工作
为避免返工,请遵循以下步骤:
- 使用SPUFI测试您的SQL语句。
- 编译您的程序,不使用SQL语句,并解决所有编译器错误。
- 继续进行准备,使用 Db2 预编译器或支持该 Db2 协处理器的宿主编译器。
- 包含 ODBC 呼叫的应用程序
- REXX等解释性语言的应用。 有关运行REXX程序(您无需准备执行)的信息,请参阅运行 Db2 REXX应用程序。
- Java™应用程序,其中可能包含 JDBC 调用或嵌入式SQL语句
关于本任务
在 Db2 for z/OS® 上运行应用程序之前,您需要先进行准备。 为了准备程序,您需要创建一个负载模块,可能是一个或多个软件包,以及一个应用程序计划。
如果您的应用程序包含 SQL 语句,则需要使用编译器附带的 Db2 coprocessor 或 Db2 precompiler 来处理这些 SQL 语句。
Db2 coprocessor 是应用程序中处理SQL语句的推荐方法。 与 Db2 precompiler 相比, Db2 coprocessor 对SQL程序的限制更少,并且更全面地支持最新的SQL和编程语言增强功能。 参见使用 Db2 协处理器处理SQL语句。
- 将源程序中的SQL语句替换为对 Db2 语言接口模块的调用
- 创建数据库请求模块(DBRM),在绑定过程中将您的SQL请求发送至 Db2
- Db2 coprocessor
下图说明了使用 Db2 coprocessor 时的节目准备流程。 该过程与 Db2 precompiler 的过程类似,只是 Db2 coprocessor 不会为您的应用程序创建修改后的源文件。 更多信息,请参阅 《使用 Db2 协处理器处理SQL语句 》。
图 1。 包含嵌入式SQL的应用程序的准备过程概述。 Db2 协处理器可以合并某些语言的预编译和编译步骤。 - Db2 precompiler
在源程序中使用 Db2 预编译器处理SQL语句后,您将创建一个加载模块(可能是一个或多个包)和一个应用程序计划。 创建加载模块需要将预编译器生成的修改后的源代码编译为目标程序,并对目标程序进行链接编辑,以创建加载模块。 创建软件包或应用程序计划是 Db2 独有的流程,需要使用BIND PACKAGE命令绑定一个或多个由 Db2 precompiler 创建的DBRM。 更多信息,请参阅 《使用 Db2 预编译器处理SQL语句 》。
过程
并非所有情况下都需要打包。 这些说明假定您将一些DBRM绑定到包中,并在计划中包含一个包列表。
您可以使用以下方法完成程序准备任务:
- 使用JCL程序准备应用程序有多种方法可用于准备应用程序的运行。 您可执行以下操作:
- 使用 Db2 互动( DB2I )面板,它会引导您逐步完成准备过程。
- 使用JCL提交后台作业(程序准备小组可以为您创建)。
- 在 TSO 后台或前台启动 DSNH CLIST。
- 使用TSO提示符和DSN命令处理器。
- 在安装时,请将JCL程序添加到您的 SYS1.PROCLIB (或类似地址)中,地址为 Db2 。
您可以从UNIX系统服务中调用协处理器。
如果DBRM是以HFS文件生成的,您也可以使用 来绑定生成的DBRM。 Db2 command line processor 您也可以使用 oput 和 oget 命令将 DBRM 复制到分区数据集成员中,然后使用常规 JCL 进行绑定。
本主题介绍如何使用JCL程序准备程序。 有关使用 DB2I 面板的信息,请参阅准备在 Db2 for z/OS 上运行的应用程序。
- 通过 Db2 准备申请 计划 准备小组
如果您使用 TSO 和 ISPF 开发程序,可以使用 Db2 程序准备面板来准备运行。 这些面板将引导您逐步完成应用程序的运行准备。 还有其他方法可以准备要运行的程序,但使用 Db2 Interactive( DB2I )是最简单的,因为它会自动引导您完成一项又一项任务。
重要提示 :如果您的C++程序满足以下两个条件,则必须使用JCL程序进行准备:- 该程序由多个数据集或成员组成。
- 不止一个数据集或成员包含 SQL 语句。
使用 Db2 程序准备面板准备申请:- 如果您想在程序准备期间显示或隐藏消息ID,请在 ISPF 命令行中指定以下命令之一:
TSO PROFILE MSGID- 消息ID显示
TSO PROFILE NOMSGID- 消息ID被屏蔽
- 打开 DB2I 主选项菜单。
- 选择与“程序准备”面板对应的选项。
- 完成“程序准备”面板和后续面板。 完成每个面板后, DB2I 会自动显示下一个合适的面板。
- DL/I批处理程序的编制指南在批处理程序中访问 Db2 和DL/I时,请遵循以下准则: