IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

DB2 Development Center — DB2 下一代 AD 工具

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Abdul Al-Azzawe, DB2 Application Development Support, IBM 硅谷实验室

2002 年 7 月 01 日

DB2 版本 8 承诺要成为一个令开发者激动的发行版。新的 DB2 Development Center 就是它的一个专为开发者设计的功能部件,它是一个用来构建存储过程、用户定义函数、结构化数据类型以及其它东西的快速循环开发环境。

介绍

DB2® Universal Database™ 版本 8 中有许多令人激动的新功能,其中之一就是专门给为开发工程提供支持的开发者和数据库管理员设计的一个新的开发中心。Development Center 是什么?与它的前身 Stored Procedure Builder 相比,区别在哪里?这是一个数据库开发者工具还是数据库管理员工具?这篇概述性文章旨在解决所有这些问题,以及其它一些问题。Development Center 是一个很强大的新工具,它有很多强大的新功能。由于描述这个工具的所有功能超出了这篇简短的文章的范围,因此请您寄希望于过一段时间后在 DB2 开发者园地看到更多信息。

本文描述了新 Development Center 技术方面的一些突出特点,以及您用这个中心可以做的一些主要工作,比如开发存储过程、开发用户定义的函数以及开发专用的表函数。





回页首


技术方面的突出特点

简而言之, Development Center是 Stored Procedure Builder 的一个演化版本。它是一个用来构建存储过程、用户定义的函数、结构化数据类型等的快速循环开发环境。为了能够实现任务并发执行、灵活的入坞(docking)、增强的可伸缩性和达到更高的生产力,这个工具被完全从头重写了。


图 1. DB2 Development Center
DB2 Development Center

Development Center 中有下面一些新功能:

功能性

  • 支持整个 DB2 服务器产品系列,包括 DB2 Universal Database for z/OS™、DB2 for iSeries™、DB2 for UNIX®、Linux for 390 和 Windows®
  • 增强的 z/OS 支持,包括专用的 SQL ID(包所有者、构建所有者和辅助 SQL ID)以及高级构建选项
  • 支持开发 SQL 和 Java™ 存储过程、SQL 标量和表用户定义函数、MQSeries®、OLE DB 和 XML 表函数以及 EJB 方法和属性的结构化数据类型
  • 支持查看实际的数据库表、视图、触发器、存储过程和用户定义函数。

可用性

  • 快速运行启动板以指导新用户进行开发任务的初始设置
  • 使用灵活入坞的可定制工作台
  • 在工程视图中出现的特定于工程的服务器对象独立于在服务器视图中展示的实际的数据库对象

工程管理

  • 多个工程同时开发
  • 从数据库、其它工程和其它的源文件导入存储过程和函数
  • 把工程文件导出到部署工程或脚本
  • 部署向导、部署工具和支持 DB2 服务器之类的二进制部署的命令行

测试和调试

  • 测试任何语言的存储过程和用户定义函数
  • 可保存的对象测试设置,包括参数值在内的测试设置,以及执行前和执行后的 SQL 脚本
  • 增强的 SQL 存储过程调试,利用集成的 SQL 调试器提供对变量值更改的支持
  • 使用 IBM VisualAge® 分布式调试器简化了 Java 存储过程的调试

可伸缩性与性能

  • 使用连接池支持在线(连接的)和离线(断开的)数据库连接
  • 先于数据库目录数据检索的高级过滤功能
  • 使用客户机高速缓存和数据库目录数据持久化以避免重复查询
  • 使用多线程并发执行任务





回页首


开发存储过程

您可以使用 Development Center 来构建 Java 和 SQL 存储过程。在本文发表时,除 iSeries 之外,所有平台都有了 Java 支持。

使用编辑器或存储过程向导(Stored Procedure Wizard)来创建新的存储过程。

请参阅 运行设置部分获得有关测试 SQL 和 Java 存储过程的信息。

创建和调试 SQL 存储过程

通过如 图 2中所示的向导,您可以创建新的 SQL 存储过程,同时生成其代码。这个向导的新功能之一是能够向已生成的代码中插入代码片段。


图 2. 创建 SQL 存储过程的向导
创建 SQL 存储过程的向导

加入 SQL 代码片段

简单的说,代码片段是源代码中用户定义的部分或您可以插入到生成的源代码中预定位置的注释。代码片段是您创建的可供您与小组成员重用的文本文件。这个功能在给定工程的所有存储过程中都要加入一组标准的错误处理函数、头文件、变量声明等时尤其有用。

调试 SQL

Development Center 实现的 SQL 调试器包括了许多改进,其中有更可靠的稳定性,还支持在调试和查看大变量(如大对象(large object,LOB))时更改变量的值。

图 3所示,Development Center 编辑器中紧密集成了 SQL 调试器。


图 3. 集成的 SQL 调试器
集成的 SQL 调试器

创建和调试 Java 存储过程

JDBC 和 SQLJ 存储过程都可以使用 DB2 Development Center 创建。创建新的 Java 存储过程的向导与 SQL 过程的向导相似。您可以插入多段代码,然后您可以指定附加的助手 jar,这些助手 jar 会和您的存储过程 jar 一起被安装到 DB2 服务器上。它们通常包括您的 Java 存储过程所需的一些实用程序类。

调试 Java 存储过程

使用 Stored Procedure Builder 调试 Java 存储过程需要一些手工的而且不够直观的步骤。而用 Development Center 的话,您所要做的就是选择 Java 存储过程然后单击 Debug。它会自动插入需要的 DB2 调试记录,然后启动您的客户机上的 Visual Age 分布式调试器。





回页首


开发 SQL 函数

Development Center 是第一个能支持用户定义函数(user-defined function,UDF)开发的 DB2 GUI 工具。尽管 DB2 为 UDF 提供几种语言的支持,但是 Development Center 目前能支持 SQL 标量函数和表函数,而且目前在 UNIX、Linux、Linux for 390 和 Windows 上都支持这一功能。

使用编辑器创建新的 UDF,或者可以使用如 图 4中所示的 Create user-defined function Wizard。

请参阅 运行设置部分,以了解关于测试 SQL UDF 的信息


图 4. 创建 SQL 用户定义函数的向导
创建 SQL 用户定义函数的向导

加入 SQL 代码片段

与 SQL 存储过程的情况一样,向导让您在生成的 UDF 代码中加入代码片段。

调试 SQL

现在,调试 SQL UDF 还不被支持;但是,您可以试运行您的函数,就和试运行存储过程一样。





回页首


开发专用的表函数

除 SQL 标量和表函数之外,Development Center 还支持如下专用的表函数的开发:

  • MQSeries® 表函数
  • OLE DB 数据源表函数
  • 带有可选的 XSL 转换的 XML 文档解析器和数据抽取器表函数

MQSeries 表函数向导

使用 Development Center,您可以创建 MQSeries 消息表 UDF,如 图 5所示,这些用户定义函数将利用在 DB2 V7.2 中引入的 MQSeries(WebSphere® MQ)集成 UDF。Stored Procedure Builder 中引入了该向导的早期版本。


图 5. 创建 MQSeries 表函数的向导
创建 MQSeries 表函数的向导

使用该向导,您可以创建一个能接收(破坏性地读取)或仅是读取(查看)MQ 消息的表 UDF(用户定义函数),为了更容易访问还可以创建一个可选的表视图。使用定界列标记或有明确的起始位置和长度的定长列可以将消息分解到 SQL 数据列中。它与 MQ 集成就能够完成诸如实时填充可操作的数据仓库之类的事情。要了解更多关于 MQSeries 集成 UDF 的信息,请参阅 Using MQSeries from DB2 Applications

OLE DB 表函数向导

使用内置的 OLE DB2 扩展,您就可以用 Development Center 来创建 OLE DB2 表 UDF(请参见 图 6),这些用户定义函数允许您从 DB2 内部访问 OLE DB2 数据源。Stored Procedure Builder 中引入了该向导的早期版本。


图 6. Create OLE DB Table Function wizard
Create OLE DB Table Function wizard

这些只读的表 UDF 可以存取特定的 OLE DB 表中的几列,或者也可以存取一个查询结果,而这个查询结果跨越了 OLE DB 数据源上的多个表。除可以选择创建关联的表视图之外,您还可以选择创建一个 DB2 表,在这个表中,可以自动检索 OLE DB 数据源的数据而且可以把它插入到新创建的表中。

您还可以使用一个助手向导来更好地为所支持的 OLE DB 数据源构建 OLE DB 连接串。

XML Parser Table Function 向导

凭借新的用于解析 XML 文档的内置 DB2 定制 UDF,Development Center 使您能够创建 XML 表 UDF 并用来从 XML 文档中抽取 SQL 表格式数据。这是和 Development Center 一起被引入的一种新的表 UDF。


图 7. 创建 XML 解析器表的向导
创建 XML 解析器表的向导

使用这个向导,您可以创建一个表 UDF 将 XML 节点解析出来并转换为 SQL 数据列。这个向导支持在使用内置的 DB2 XSL UDF 抽取数据之前可以有一个可选的 XSL 转换调用。这个可选的功能允许对那些可能会与这个向导支持的样式不一致的表格式数据所在的 XML 文档进行转换。





回页首


开发结构化类型

您可以使用 Development Center 把使用容器管理的持久性(container-managed persistence,CMP)的 Enterprise Java Beans(EJB)实体 bean 映射到 DB2 结构化类型。这意味着,您可以在 SQL 语句中重用来自 EJB 的逻辑。这样做的一个副作用就是会使逻辑的执行从应用程序服务器上推到数据库服务器,这意味着两者之间的数据传输更少了。

EJB 每个 CMP 域都有一个结构化类型的属性,生成这个属性是为了容纳 CMP 域的数据。由于您会为每个 EJB 方法创建一个 SQL 结构化类型,所以如果调用一个 SQL 方法,就会执行 EJB 代码。工具建议了一种缺省映射,不过您可以对其进行修改。

Development Center 首先生成使 DB2 能调用 EJB 方法的代码,然后把它和必要的结构化类型定义一起部署到数据库服务器。当数据库中创建了结构化类型时,您可以创建类型表或者在现有的关系表上创建对象视图。要了解更多关于结构化类型和对象视图的信息,请参阅 DB2's Object-Relational Highlights





回页首


导入、导出和部署

除了处理服务器端对象之外,您可以使用 Development Center 把现有的对象添加到您的工程中去,可以导出工程对象供以后部署,也可以把这些对象部署到其它的(可能是远程的)DB2 数据库服务器上。

导入存储过程和函数

您可以使用 Import Wizard(如 图 8中所示)把其它来源的现有对象加入到工程中来,这个向导使您能够把对象作为过程或 UDF 导入。您可以从另一个数据库连接、从您文件系统上现有的工程或者从包含服务器对象源码的文件中导入这样的对象。


图 8. 从文件导入存储过程的向导
从文件导入存储过程的向导

导入 SQL 过程和函数
您可以从数据库、工程或文件中导入 SQL 过程和函数。当从文件中导入时,假设该文件中只存在一个这样的对象。如果发现了多个对象,则导入的只有第一个对象。

导入 Java 过程
您可以从数据库、工程或文件中导入 Java 过程。在从文件中导入的时候,Development Center 解析器会给您待选方法列表,这些方法的存储过程都有适当的签名,而您就可以选择用哪个方法表示想要的存储过程。

导出存储过程和函数

当对工程中的对象已经感到满意的时候,您可以选择把这些对象导出以供以后再次部署时部署到其它数据库服务器上。您可以选择请求在您的导出列表中包括二进制文件。这个选项允许不经过编译而重新部署到其它平台兼容的数据库服务器上。


图 9. Export wizard
Export wizard

Development Center 支持两种类型的导出机制:导出到部署工程或导出到部署脚本。

导出到部署工程
您可以把工程对象导出到部署工程。这种导出类型允许以后使用 Development Center 的部署工具或命令重新进行部署。这是最容易的一种导出和部署方式,因为它不需要用户对导出的文件进行修改。导出的工程和文件会被自动压缩成一个 zip 文件。然后您可以把它们移动到另外一台(可能是远程的)安装了所需的部署工具或命令的 DB2 机器上。

导出为部署脚本
您可以把工程对象导出到部署脚本。这与导出在 Stored Procedure Builder 中的工作方式相仿,都会为您创建一个 deployment.bat 文件和 shell 脚本,这种方式允许您以后重新部署到其它数据库服务器。多数情况下,您必须手工修改生成的部署脚本来指定适当的数据库、用户名和密码供部署使用。导出的脚本和必要的源文件会被自动压缩成一个 zip 文件。然后您可以把它们移动到另外一台 DB2 机器上(也许是远程的),再手工执行部署脚本。

部署存储过程和函数

当您对工程中的对象感到满意的时候,就可以选择把这些对象部署到其它数据库服务器上,如 图 10所示。根据您的特殊要求,有多种部署机制可用:

  • 使用部署向导直接从 Development Center 部署工程对象
  • 首先导出工程,以后再使用部署工具部署
  • 首先导出工程,以后再使用部署命令部署
  • 把工程导出为一个脚本,以后再执行部署脚本

图 10. 工程部署向导
工程部署向导

使用部署向导部署工程
在 Development Center 内,您可以选择使用部署向导(可以通过 connection、procedures 和 functions 文件夹上的弹出菜单访问到该向导)把您的一些工程对象直接部署到另一台 DB2 服务器上。这种类型的部署考虑到了您的工程对象从工程 DB2 服务器到另外一台可以通过开发机器访问的服务器的快速移动。如果目标服务器不能立即访问,那么您应当把工程导出以供以后再次部署。

使用部署向导,您可以根据目标 DB2 服务器定制部署选项,其中包括您的工程中每个对象的构建选项。

使用部署工具部署导出的工程
在导出了部署工程之后,您可以使用部署图形化工具(这个工具类似于部署向导,差别在于开始的时候新加了一个步骤要求指定导出工程 zip 文件的源文件名和路径)把导出的工程对象部署到其它的 DB2 服务器上。请使用可执行文件(db2dcdpl)命令来启动 Development Center 部署工具。

此外,就部署向导而言,您可以根据目标 DB2 服务器定制部署选项,其中包括您的工程中每个对象的构建选项。您也可以选择部署一部分导出的工程对象。

使用部署命令部署导出的工程
在导出了部署工程之后,您可以通过输入部署命令 db2dcdpl 把导出的工程对象部署到其它的 DB2 服务器上。这样做的效果与部署工具的可执行文件一样,差别在于您需要指定 cmd 选项以避免运行 GUI。您也需要指定导出工程 zip 文件的源文件名和路径、目标数据库名称和连接用户名及密码,如下所示:


        db2dcdpl cmd [options] source-file target-database [user-id password] 

      

选项列表中包括:

-j   部署 java 源代码以及 jar 文件
-b   在可能时使用二进制文件
-s   碰到错误后停止
-r   碰到错误后停止并回滚
-i   忽略错误
-g   忽略副本
-e   将副本作为错误处理
-d   丢弃副本

如果命令选项无效, db2dcdpl 将显示帮助屏幕。

在一些场合中,部署命令可以用作服务器设置脚本的一部分或者利用 DB2 调度程序或其它任何调度工具安排它在特定的时间运行,这时部署命令很有用。

不同于部署向导和部署工具,您 不能定制部署选项,比如您的工程中每个对象的构建选项。必须使用最初的工程构建选项。不过,您可以在导出工程之前使用 Development Center 修改这些工程选项。

把导出的脚本部署到其它 DB2 服务器上
在您导出部署脚本之后,您就可以使用导出的脚本命令把导出的工程对象部署到其它的 DB2 服务器。首先,您必须解压缩脚本命令以及任何关联的助手文件(比如 .sar 和 .jar 文件)。您还必须修改部署脚本以指明目标数据库名称和用于连接到数据库的用户名和密码。

在您需要指定附加的部署选项或修改部署先后顺序的时候,部署脚本是很有用的。您也可以使用 DB2 调度程序或任何其它调度工具安排这个脚本在特定的时间运行。





回页首


指定存储过程和 UDF 的运行设置

使用 Development Center,您可以测试所有的工程过程和函数以及任何现有的服务器过程和函数。您可以指定执行前和执行后的脚本、参数值和其它测试选项,如在测试执行完之后进行回滚或提交( 图 11)。


图 11. 指定运行设置
指定运行设置

运行设置

您随时可以使用 Run Settings指定这些过程和函数的测试设置。您指定的设置会被作为工程设置的一部分持久保存,以供今后重用。有了这一功能,您不必在每次想要测试过程或函数的时候都重新输入测试参数和选项。

执行前和执行后的脚本
您可以指定执行前和执行后的脚本中的数据定义语言(data definition language,DDL)或数据操纵语言(data manipulation language,DML)SQL 语句。您可以使用执行前的脚本来设置测试环境,可能要通过创建一些临时表或通过插入一些测试需要的数据记录。您可以使用执行后的脚本在过程或函数执行之后进行清理工作。

参数值
您可以指定任何输入或出入(inout)过程以及函数参数的值。在后来的测试中会反复使用这些值。参数值可以使用 Run Settings 对话框或 Specify parameter values 对话框来指定。当您选择 Run而非 Run Settings时,Test run 对话框就会出现。





回页首


服务器视图 — 开发者的控制中心(Control Center)

Development Center 的一个很重要的新功能是能把 Project View 中展示的工程对象从 Server View(如 图 12中所示)中的实际服务器对象中独立出来。


图 12. Server View 是开发者的一个微型 Control Center
Server View 是开发者的一个微型 Control Center

您可以把 Server View 看成是专门为开发者设计的一个微型 Control Center,因为它包括开发者使用的对象,如存储过程、触发器、表和视图等等。这个视图可以被放在 Development Center 的任何地方。

Server View 功能

Server View 有下面一些功能:

  • 为每个对象文件夹指定单独的过滤器的能力。这个功能在您有一个庞大的数据库,而且想要过滤出其中有多少个对象会被返回的时候尤其有用。
  • Server View 中显示的数据在本地机器上缓存,并且可以在以后调用时重用。这个功能使性能得到了改进,因为您可以控制什么时候刷新这些数据。

Server View 对象

Server View 文件夹包括存储过程、UDF、触发器、表和视图。可以对文件夹对象执行的一些操作有:

  • 存储过程 — 添加到工程中、展示属性、查看源码、测试以及删除。
  • 用户定义函数 — 添加到工程中、展示属性、查看源码、测试以及删除。
  • 触发器 — 展示属性(包括源码)。
  • 表 — 展示属性和样本内容。
  • 视图 — 展示属性和样本内容。




回页首


构建查询

Development Center 中加入了新版的 SQL Assist( 图 13)。


SQL Assist

增强版的 SQL Assist 中有很多新特性,包括对完整选择(UNION(并集)、INTERSECT(交集)等)的支持、重新设计的条件构造器(condition builder)、改进了的性能、可访问性和往返(roundtrip)查询编辑功能。这一改进了的集成意味着,您可以从 Development Center 中的任何地方(包括向导和脚本)突出显示一条 SQL 语句,然后启动 SQL Assist 对这条 SQL 语句进行进一步的编辑。





回页首


进行环境设置

Development Center 中有众多配置选项供您设置。您可以使用 Project->Environment Settings(如 图 14中所示)修改这些选项。


图 14. 更改环境设置
更改环境设置

手工编辑设置文件

图 14中的 Environment Settings 对话框里所示的设置之外,还有很多其它的设置。您可以自己编辑设置文件来修改这些附加的设置。设置文件的位置在您的客户机上的用户路径下。用户路径的位置是特定于平台的。对于 Windows,这个位置是 %USERPROFILE% 环境变量,而 UNIX 上则是 $HOME 环境变量。

在用户路径中的 IBM\DB2DC 文件夹下面有两个设置文件,分别是 DB2DC.settings YourName.settings 。不要修改 DB2DC.settings ;相反,您应该把感兴趣的部分从 DB2DC.settings 文件中复制到 YourName.settings 再修改设置值。 重要提示:在您开始编辑设置文件之前请务必退出 Development Center 以避免丢失您所做的更改。

例如,要修改您的工作目录,请把 PROCESS 这一段从 DB2DC.settings 复制到 YourName.settings ,再对 WORK_DIRECTORY XML 节点的值进行如下修改:

	<PROCESS description="Process">
		<WORK_DIRECTORY description="Temporary build directory" 
		value="C:\Documents and Settings\Abdul\IBM\DB2DC\Projects\" />
	</PROCESS>

正如您看到的,设置文件的每一条目都有一个名字(name)、一个描述(description)和一个值(value)。要修改的只有值(value)。

恢复设置文件

如果您意外地损坏了其中一个设置文件,或两个都损坏了,那么只要删除损坏了的文件,再次启动 Development Center 时它会为您自动生成设置文件。





回页首


结束语

本文介绍了 DB2 Development Center 的许多激动人心的新功能,Development Center 是一个快速循环开发工具,可以构建存储过程、用户定义函数和结构化数据类型,它支持整个 DB2 服务器产品系列。Development Center 的新功能的其中一些包括:

  • 支持扩展对象,通过易于使用的向导加入创建的 SQL UDF、MQSeries 表 UDF、OLE DB 表 UDF、XML 表 UDF 和 EJB 结构化数据。
  • 新的增强的导入、导出和部署功能和向导,以实现快速的工程管理。
  • 新的服务器视图,能以只读方式访问存储过程、UDF、触发器、表和视图,并且使 Project View 中展示的工程对象从 Server View 中展示的实际的服务器对象中独立出来。
  • 支持在线和离线数据库连接,并且缓存服务器目录数据以供离线模式使用。
  • 增强的集成 SQL 调试器,其中包括大变量支持和调试时值更改功能。

Development Center 是专门为负责部署和管理使用该工具构建的数据库应用程序的数据库开发者和数据库管理员而设计的。Development Center 代表着 DB2 AD 工具的进步,为您提供了易于使用、可伸缩性强和丰富的功能集。





回页首


声明

IBM 公司可能已拥有或正在申请与本文档内容有关的各项专利。提供本文档并未授予用户使用这些专利的任何许可证。您可以用书面方式将许可证查询寄往:

IBM Director of Licensing
IBM Corporation
North Castle Drive Armonk, NY 10504-1785
U.S.A.



关于作者

照片:Abdul H. Al-Azzawe

Abdul H. Al-Azzawe是位于 San Jose 的 IBM 硅谷实验室的一名高级软件工程师。他于 1990 年进入公司,堪称 IBM 的老员工。Abdul 是 DB2 下一代应用程序开发的主要设计师。在接受目前的任务之前,他曾是 IBM 多伦多实验室的核心 DB2 引擎开发小组的成员之一。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款