使用 GBase Database Add-Ins for Visual Studio 调试 SPL 过程

可以使用 GBase Database Add-Ins for Visual Studio 调试 GBase 8s SPL 过程。

您可以调试运行在 GBase 8s 上的任何 SPL 过程。您可以遍历您的代码,设置行或变量断点,查看变量值,更改变量值,查看嵌套过程的调用堆栈信息,以及在调用堆栈的不同过程之间切换。通过在调试模式下运行过程并查看结果时单步执行代码,可以发现过程的问题并进行必要的更改。

要在 GBase Database Add-Ins for Visual Studio(IDAIVS)中启动 SPL 例程调试,请按照以下步骤操作:

启动并配置 GBase 8s 数据库服务器实例

要配置 GBase 8s 数据库服务器实例以致于启用 SPL 例程调试,请按照下列步骤操作:

  1. 安装 GBase 8s 数据库服务器产品。
  2. 配置 onconfigsqlhosts 文件中的条目并启动 GBase 8s 服务器,以支持 DRDA 通信协议:
    • onconfig:
      DBSERVERNAME   ids_spldb
    • sqlhosts:
      ids_spldb   drsoctcp   ids_server_machine_name   port_number
    注: GBase 8s 的 SPL Routine Debugger 支持通过 GBase 8s .Net provider 连接到客户端,并且需要 GBase 8s DRDA 协议连接。
  3. 您必须提供一个 sbspace ,以便数据库服务器存储 GBase Database Add-Ins for Visual Studio 发送给服务器的 XML 消息。SBSPACENAME 配置参数的设置指定了系统缺省 sbspace 的名称。可以通过带 -Df "LOGGING=ON" 选项的 onspaces 实用程序在数据库上创建缺省 sbspace。此 sbspace 在 GBase Database Add-Ins for Visual Studio上调试 SPL 的必要条件。
  4. 如果这是新的服务器实例,使用 CREATE DATABASE 语句创建新的数据库。稍后将使用此数据库在 GBase Database Add-Ins for Visual Studio 中创建数据库连接,以部署和调试 SPL 例程。

启动例程调试会话管理器

要启动会话管理器,请按照下列步骤操作:

  1. 要手动启动会话管理器,使用以下的命令输出 CLASSPATH 环境变量设置:
    export CLASSPATH=${GBASEDBTDIR}/bin/db2dbgm.jar:$CLASSPATH
              
  2. 使用 Java™ 1.5.0 或更高版本并确保它在 PATH 环境变量中运行下列命令,指定会话管理器将会使用的 port number 以及会话管理器日志文件的 pathname
    java com.ibm.db2.psmd.mgr.Daemon -port port_num -log sess_mgr_log_path
注: 该会话管理器必须在运行 GBase 8s 实例的机器上启动,这也是 GBase Database Add-Ins for Visual Studio 连接到会话管理器的必要条件。

建立 GBase 8s 数据库服务器连接

通过选择 "Add Connection…" 菜单项创建新连接,可以从服务器资源管理器中 "Data Connections" 节点上的操作(右键单击)弹出菜单访问 Add Connection 对话框。Data source 字段会显示 "IBM DB2,GBase 8s and U2 Servers (IBM DB2, GBase 8s, and U2 Data Provider)。"

  1. 在下面 "1. Select or enter server name:"字段中,输入 GBase 8s 服务器实例的名称。
  2. 在 "2. Enter information to log on to the server:" 旁边的字段中输入您的用户 ID 作为 User ID: ,在 Password: 字段中输入服务器上 gbasedbt 账户的密码。
  3. 在"3. Select or enter a database name:" 下面的字段中,输入存储要调试的 SPL 过程的数据库的名称。
  4. 点击 Test Connection 按钮以测试 GBase 8s 服务器实例的连接。
  5. 如果出现 Test connection succeeded 对话框,您可以点击 OK 按钮。可以忽略此 Add Connection 对话框,因为您已经在 GBase 8s 服务器和 Visual Studio 之间创建了连接。

设置会话管理器

在您开始调试会话之前,需要指定要调试的 SPL 例程,和数据库服务器连接以及会话管理器的端口号。

  1. 从 Server Explorer 中的 "Data Connections" 节点中,单击所有连接的 GBase 8s 服务器。
  2. 展开 Procedures 标题以显示数据库中所有存储过程的名称。
  3. 单击您要调试的 SPL 例程的名称。
  4. 从 Tools 选项卡,选择 Tools 列表底部附近的 "Options . . . " 菜单。
  5. 从 Options 对话框中,展开 GBase 8s Database Tools 项,然后单击 General 项显示类别的列表。
  6. 使用 General 选项列表右侧的滑块控件显示 Session Manager Connection Session Manager Port 号。
  7. 单击 OK 接受会话管理器配置的这些值。

有关如何使用 Visual Studio 的调试 SPL 例程的详细信息,请参阅 GBase Database Add-Ins for Visual Studio

调试 GBase 8s SPL 过程

这是使用 GBase Database Add-Ins for Visual Studio 调试 SPL 过程的步骤:
  1. 启用该过程的调试:
    1. 在数据连接的服务器资源管理器中,右键点击要调试的过程,然后单击快捷菜单上的 Open Definition
    2. GBase Procedure Designer 的过程视图中,在 Debug mode 文件中选择 ALLOW
    3. 保存此过程,但是保持 Designer 打开。
  2. GBase Procedure Designer 中设置行断点。
    1. 如果过程在 Designer 中未打开,请在服务器资源管理器中的数据连接下,右键单击该过程,然后单击快捷菜单上的 Open Definition
    2. 在 Designer 的“过程”视图的 SQL Body 部分中,设置行断点。
    3. 要设置断点的属性,请右键单击左边距中的断点,选择快捷菜单上的 LocationFilterWhen Hit ,并在打开的窗口中指定必要的信息。
  3. 在调试模式中开始运行此过程。
    • 如果该过程在 GBase Procedure Designer 中打开,请单击 GBase Procedure Designer 选项卡上的 Step Into
    • 如果未在 Designer 中打开此过程,在资源管理器中右击此过程,然后单击快捷菜单上的 Step Into
  4. 在调试模式下运行每个过程,并使用以下方法之一:
    • 设置变量断点。在 SQL 主体中,右击变量名称,在快捷菜单上点击 Breakpoints ,并选择 Insert Variable Breakpoints
    • 修改断点的值。
  5. 继续调试 GBase 8s SPL 过程直到该过程返回期望的结果。

在 CLR 应用程序中调试 GBase 8s SPL 过程

当您以 C# 和 Visual Basic 语言开发 Windows™ 或 ASP.NET 应用程序,您可以使用 GBase Database Add-Ins for Visual Studio调试公共语言运行库(CLR)应用程序。 如果该应用程序访问 GBase 8s 数据库服务器实例,则您可以在调试此应用程序时调试从此应用程序调用的 SPL 过程。

GBase Unified Debugger 通过 GBase Procedure Designer 调试 SPL 过程。如果当您调试应用程序时一个过程定义在 Designer 中打开,随着调试器进入该过程,将激活该 Designer 的实例。如果未在 Designer 中打开该过程定义,则随着调试器进入该过程,此调试器会在 Designer 的新实例中打开过程定义。

先决条件: 要调试 CLR 应用程序的 SPL 过程,在包含此应用程序中的项目中启用 GBase 8s SQL debugging

要调试 CLR 应用程序的 SPL 过程,请按照以下步骤操作:

  1. 对于应用程序中的每个 SPL 过程:
    1. 启用此过程的调试:
      1. 在数据连接的服务器资源管理器中,右键点击要调试的过程,然后单击快捷菜单上的 Open Definition
      2. GBase Procedure Designer 的过程视图中,在 Debug mode 文件中选择 ALLOW
      3. 保存此过程,并且可以选择打开 Designer 以设置行断点。
    2. 可选:在 GBase Procedure Designer 中设置行断点。
      1. 在 Designer 的“过程”视图的 SQL Body 部分中,设置行断点。
      2. 要设置断点的属性,请右键单击左边距中的断点,选择快捷菜单上的 LocationFilterWhen Hit ,并在打开的窗口中指定必要的信息。
      3. 保持 Designer 打开。
  2. 开始调试应用程序。

    在解决方案资源管理器中,右击此应用程序,选择快捷菜单上的 Debug ,然后选择 Start new instance

    调试开始而且 Debugger Task Status 窗口打开。

    通用调试的每个过程的调用堆栈与调用该过程的线程的调用堆栈合并。您可以从 C# 或 Visual Basic 代码中查看调用过程的位置。

  3. 在调试模式运行每个调用的过程。
    • 如果在步骤 1a.iii 中关闭了 GBase Procedure Designer,在 Designer 的新实例中,在 SQL Body 部分为该过程设置行断点和断点属性。
    • 设置变量断点。在 SQL 主体中,右键单击变量名称,单击快捷菜单上的 Breakpoints 然后选择 Insert Variable Breakpoints
    • 修改断点的值。
  4. 要取消长时间运行任务,请在 Debugger Task Status 窗口中单击 Cancel

    如果在调试应用程序时关闭了窗口,请从 Tools 菜单,选择 Show GBase 8s Debugger Task Status 来重新打开此窗口。

  5. 继续调试 GBase 8s SPL 过程直到该过程返回期望的结果。

在 CLR 应用程序中启用 SQL 调试

如果要在 C# 或 Visual Basic 公共语言运行时(CLR)应用程序中调试 GBase 8s SPL 过程,则必须首先为 GBase 数据库项目启用 GBase SQL 调试。您只需执行一次此过程,为项目启用 SQL 调试会在 Visual Studio 中设置一个会在会话之间持续存在的项目属性。

当您在应用程序中启用 SQL 调试,则 GBase Unified Debugger 必须关闭并重新打开包含此应用程序的 GBase 数据库项目。项目重新打开后,必须指定数据连接以及可选的运行调试会话管理器的端口。您还必须更改某些标准 Visual Studio 项目调试属性的设置。

加载项( 32 位应用程序)不支持控制台应用程序的 64 位调试过程。在 64 位操作系统中,缺省的 debug 平台是 Any CPU ,这是一个 64 位调试过程。您必须在项目属性中指定 32 位调试平台。

Prerequisite:要在应用程序中启用 GBase SQL 调试,在包含此应用程序的 GBase 数据库项目必须在解决方资源案管理中打开。

要在应用程序中启用 GBase SQL 调试,请按照以下步骤操作:
  1. 在解决方资源案管理中,右键单击 GBase 数据库项目节点,然后在快捷菜单中选择 Enable GBase 8s SQL Debugging

    将显示一条消息,说明必须关闭并重新打开项目。

  2. 在消息窗口中单击 Yes 以确认项目的关闭和重新打开。

    保存所有未保存的修改,关闭项目,然后在解决方案资源管理器中重新打开它。

  3. 在解决方案资源管理器中,右键单击 GBase 数据库项目节点,然后在快捷菜单中选择 Properties

    将打开 Project Designer 。

  4. 在 Designer 的左侧框,单击 GBase 8s Unified Debugger

    将显示 GBase Unified Debugger 页面。

  5. 执行以下一组操作:
    • 如果您有以下连接之一用于调试会话管理器:
      • GBase 8s 12.10
      • Linux™ 、UNIX™ 和 Windows 的 DB2
      • DB2 z/OS® 9.1 或 10 版本
      • DB2 i V5R4 或 V6R1
      1. 选择 Use an existing connection for session manager
      2. 在列表中,选择要在其上运行调试会话管理器的数据连接。
    • 如果您正在手动运行此调试会话管理器:
      1. 选择 Use a new host name for session manager
      2. 为此调试会话管理器指定主机名。
  6. 如果您在 64 位的操作系统上调试控制台应用程序,请在 Platform 列表中选择 x86
  7. 可选的:在 Session manager port 字段中,键入要在其上运行调试会话管理器的端口。
  8. 在项目设计器左侧框中, 单击 Debug

    将显示项目设计器的 Debug 页面。

  9. 在 Debug 页面修改以下属性:
    • Start Options,清除 Use remote machine 复选框。
    • Enable Debuggers,清除以下三个复选框:
      • Enable unmanaged code debugging
      • Enable SQL Server debugging
      • Enable the Visual Studio hosting process
  10. 关闭 Project Designer。