调试存储过程
调试存储过程时,您可能需要使用与常规应用程序不同的技术。 例如,一些常用的调试工具(如TSO TEST)在存储过程运行的环境中不可用。
过程
要调试存储过程,请执行以下一项或多项操作:
- 在许多情况下,以下一般操作适用于存储过程:
- 确保所有存储过程都编写得能够处理任何SQL错误。
- 在工作站上以独立程序的形式调试存储过程。
如果您的工作站上有调试工具,请考虑先在工作站上进行大部分开发和测试,然后再在 z/OS® 上安装存储过程。使用此技术, z/OS 上的调试活动将非常少。
- 将存储过程调试消息记录到磁盘文件或 JES 假脱机文件中。
- 将调试信息保存在表中。 这种技术对于远程存储过程特别有用。
- 使用DISPLAY命令查看特定存储过程的相关信息,包括统计信息和线程信息。
- 在您正在调试的存储过程中,发出DISPLAY命令。 您可以在 SDSF 输出中查看显示结果。 显示结果可以帮助您找到与WLM应用程序环境地址空间相关的已启动任务的信息。
- 如有必要,使用 STOP PROCEDURE 命令停止对一个或多个有问题的存储过程的调用。 您可以稍后再重新启动它们。
- 如果您的存储过程地址空间分配了CEEDUMP数据集,请查看CEEDUMP输出中的诊断信息。
- 对于 COBOL、C和C++存储过程,请使用 Debug Tool for z/OS。
- 对于 COBOL 存储过程,若需在CEEDUMP输出中包含格式化的局部变量转储,请使用TEST(SYM)选项编译该存储过程。
- 对于本地 SQL 程序、外部 SQL 程序和 Java™ 存储过程,请使用统一调试器。
- 对于外部存储过程,请考虑采取以下一项或两项措施:
- 使用驱动程序应用程序。
- 创建或修改存储过程定义,以包含参数风格SQL选项。 该选项允许存储过程与调用应用程序共享任何错误信息。 确保您的程序遵循存储程序的链接约定。
- 如果您更改了WLM应用程序环境中的存储过程或启动JCL过程,请确定是否需要刷新WLM环境。 在特定存储过程更改生效之前,您必须刷新WLM环境。