从IBM DB2 for i V5R4版本开始,IBM i开发人员已经能够以图形方式调试SQL和Java存储过程。 许多IBM i开发人员都不知道此功能。 这些图形功能由IBM Data Studio产品(以前称为IBM DB2 Developers Workbench和IBM DB2 Development Center)提供。 IBM Data Studio是一种可视化工具,可支持所有IBM平台上的整个IBM DB2系列,以快速开发DB2业务对象。 Data Studio(4.1.0)的最新版本还添加了对DB2 i SQL用户定义函数的支持。 此新支持要求在系统上安装IBM i 6.1或IBM i 7.1 数据库组PTF的最新版本。
IBM Data Studio是基于Eclipse技术的图形开发工具。 Data Studio支持应用程序开发人员各种功能,从浏览和编辑表中的数据到创建和运行SQL语句。 该Data Studio网站提供了DB2 for i数据库支持的Data Studio功能的完整列表。
IBM i开发人员可以从Data Studio下载网站下载Data Studio。
正确设置连接是使用Data Studio调试功能的关键设置步骤。 以下步骤将指导您完成连接配置过程。
首次启动Data Studio时,需要为开发项目建立新的数据库连接。 在“数据源资源管理器”视图中添加了连接,该视图通常位于窗口的左下角。 使用图1所示的界面添加新的数据库连接。Data Studio调试器要求使用特殊属性创建存储过程,以使该过程有资格进行调试。 您可以使用ALLOW DEBUG MODE子句或使用CURRENT DEBUG MODE特殊寄存器将这些属性添加到过程中。 *SQL DBGVIEW选项与Data Studio调试器不兼容。 实际上,如果过程同时指定了ALLOW DEBUG MODE子句和DBGVIEW选项,则会返回语法错误。
清单1包含一个使用ALLOW DEBUG MODE子句SQL过程的示例。
如果您不想在CREATE PROCEDURE语句中包括调试子句,则CURRENT DEBUG MODE特殊寄存器提供了另一种选择。 使用这种方法,只要在创建过程之前将特殊寄存器设置为ALLOW值,就可以从CREATE PROCEDURE语句中删除ALLOW DEBUG MODE子句。 以下是设置调试模式特殊寄存器的示例: SET CURRENT DEBUG MODE=ALLOW将特殊寄存器设置为ALLOW意味着在此分配之后创建的任何例程都可以由Data Studio调试器调试。 使用Data Studio创建过程时,还可以通过选择Deploy Routines界面上的Enable Debugging选项来启用调试模式, 如图2所示。
选中“ 启用调试”复选框会使Data Studio在选定服务器上创建存储过程之前,将调试模式特殊寄存器设置为ALLOW值。 这样可以确保即使存储过程源代码中缺少ALLOW DEBUG MODE子句,也可以在服务器上存在存储过程的调试视图。
启动调试器之前,您需要在左上角的Data Project Explorer窗口中找到SQL存储过程( 如图3所示)。 双击该过程将使源代码显示在右侧的“ IBM SQL和例程开发”透视图中。 该透视图使您可以编辑,创建和运行SQL过程。
如图3中突出显示的那样,启动调试器的最简单方法是在Data Project Explorer窗口中右键单击存储过程,然后单击Debug 。
为存储过程启动调试任务后,将显示窗口( 如图4所示),以便您可以为此例程调用指定调试设置。 可以在此接口上更改的主要设置是在存储过程的调用中将传递的输入参数的值。 “ 运行和性能选项”选项卡具有一个设置,该设置使对数据库所做的更改可以自动提交。
如果要更改输入参数值,请在参数的“ 值”列中单击。 通过此界面,您可以从要测试的文件中检索值,这样就不必在每次需要运行和调试特定测试时手动输入这些值。
现在已完成配置,单击Debug即可启动调试器 。 单击Debug之后,Data Studio会自动切换到图5中显示的Debug透视图 。
当Data Studio调试器可以控制存储过程的执行时,存储过程的第一行将突出显示( 如图5所示)。 第一次在系统上运行Data Studio调试器时,调试器可能需要一些时间才能获得控制权,因为必须在IBM i系统上启动作业(QSQDBGMGR)才能支持Data Studio调试会话。
在Data Studio调试器控制了之后,您可以逐步执行该过程并设置断点。 您可以通过双击左边距来设置和清除断点。 设置断点后,左边缘会显示一个小点。 圈出图5中的断点指示器以供参考。 在“调试”视图(“调试”选项卡中突出显示)的第一行中,您可以控制存储过程的执行。 单击带有黄色条形图标的绿色箭头会使存储过程在达到断点后恢复执行。 带有黄色箭头的图标提供了各种步骤执行(例如,Step Into和Step Over)。 您可以在右上角(在“变量”选项卡中)的“变量”视图中访问过程变量的值。 因为图5显示了存储过程开始运行之前的初始调试视图,所以Variables视图仅包含两个变量,SQLCODE和SQLSTATE,它们已由DB2初始化为零。 随着存储过程执行的进行,Data Studio调试器会自动向该视图添加变量。
变量视图的这种动态特性( 如图6所示)在SET语句上达到断点后显示Debug视图。 现在已经运行了两行存储过程,您可以看到“变量”视图显示了更多变量,包括SQL过程的输入参数(ORDNUM,ORDWEIGHT,ORDNUM)的值。 您还可以使用“变量”视图在变量上设置监视,甚至更改它们的值-您可以通过右键单击变量名称来访问这两个函数。 与IBM i图形调试器相比,使用Data Studio调试器监视和访问存储过程中的变量和参数要容易得多。
图6还展示了Data Studio调试器如何突出显示要运行的下一行代码。 您还可以推断出从左边距到达一个断点,在该处箭头指向表示定义的断点的小圆圈。
使用Data Studio调试器调试SQL用户定义的标量函数几乎与调试存储过程相同。 唯一的区别是,调试器只能与用户定义的标量函数一起使用,这些函数指定了NOT FENCED和DISALLOW PARALLEL属性。 如果您SQL函数满足此要求,则只需遵循与SQL过程相同的调试步骤即可。
完成此详细介绍之后,您现在应该准备使用IBM Data Studio调试器来加快存储过程的问题确定过程。 调试愉快!
翻译自: https://www.ibm.com/developerworks/ibmi/library/i-debugger-db2-i/index.html
相关资源:ibm_data_server_client_winx64_v11.1 IBM_DB2_客户端1