数据库主机服务器代码中出现IBM DB2 ODBC驱动程序问题[Error 69899]错误。SQLSTATE=S1000

数据库主机服务器代码中出现IBM DB2 ODBC驱动程序问题[Error 69899]错误。SQLSTATE=S1000,db2,ibm-midrange,db2-400,Db2,Ibm Midrange,Db2 400,将IBM System i(也称为i5/OS)或AS/400从V5R4升级到V7R1后,我们使用ODBC连接到DB2的一个应用程序出现以下错误: Error Code: 69899 SQLSTATE: S1000 [IBM] [System i Access ODBC Driver] [DB2 for i5/OS] PWS0005 Error occurred in the database host server code. 病征包括: 在While/Wend循环中,一个游标被声明,然后打

将IBM System i(也称为i5/OS)或AS/400从V5R4升级到V7R1后,我们使用ODBC连接到DB2的一个应用程序出现以下错误:

Error Code: 69899
SQLSTATE: S1000
[IBM] [System i Access ODBC Driver] [DB2 for i5/OS] PWS0005 
Error occurred in the database host server code.
病征包括:

在While/Wend循环中,一个游标被声明,然后打开、获取和关闭

如果在任何迭代中游标没有检索到任何行,则在下一次迭代中,当您尝试打开游标时,在使用不同的SQL查询声明游标后会发生错误

首先,我们将ODBC驱动程序更新为可用的最新版本,但问题仍然存在

因为我们需要一个紧急的解决方案,我通过预先选择来确定光标是否会返回行来解决这个问题,否则跳过那个迭代,这现在解决了问题,但似乎不是一个非常优雅的解决方案

您知道如何获取有关主机上发生的错误的更多信息吗


非常感谢您。

一般来说,如果服务器端代码中出现错误,您应该致电IBM支持人员并报告。他们会问你是否在使用最新的cume,可能是最新的数据库组PTFs

服务器在名为QZDASOINIT的作业中运行ODBC连接。由于系统可能有许多连接,因此可能有许多QZDASOINIT作业。要查找您的,请转到终端会话并WRKOBJLCK MYPROFILE*USRPRF。您将看到一个使用您的用户配置文件运行的作业列表。其中至少有一个是你正在寻找的QZDASOINIT工作。使用选项5查看作业,然后使用选项10查看作业日志。按F10键查看详细信息,按F18键进入最新条目的底部

如果错误严重到服务器作业异常终止,则不会锁定用户配置文件。相反,使用WRKSPLF转到假脱机作业日志


自V5R4以来,IBM一直在记录一些SQL内部错误。从qrecovery.qsq901s中选择*;查看任何SQLCODE-901错误。

一般来说,如果服务器端代码中出现错误,您应该致电IBM支持人员并报告。他们会问你是否在使用最新的cume,可能是最新的数据库组PTFs

服务器在名为QZDASOINIT的作业中运行ODBC连接。由于系统可能有许多连接,因此可能有许多QZDASOINIT作业。要查找您的,请转到终端会话并WRKOBJLCK MYPROFILE*USRPRF。您将看到一个使用您的用户配置文件运行的作业列表。其中至少有一个是你正在寻找的QZDASOINIT工作。使用选项5查看作业,然后使用选项10查看作业日志。按F10键查看详细信息,按F18键进入最新条目的底部

如果错误严重到服务器作业异常终止,则不会锁定用户配置文件。相反,使用WRKSPLF转到假脱机作业日志


自V5R4以来,IBM一直在记录一些SQL内部错误。从qrecovery.qsq901s中选择*;查看任何SQLCODE-901错误。

请确保已为最新版本的System I Access安装了最新的修补程序包

请确保已为最新版本的System I Access安装了最新的修补程序包

我以前遇到过此错误,它是由连接字符串中的语法错误引起的。这种设置在较旧版本的操作系统中无关紧要,在较新版本中更为重要,但不会导致连接本身失败,因此很难跟踪


例如:端口号:8471有一个拼写错误,端口号:8471很难识别,但一旦发现,它就为我解决了这个问题。基本上,通过这部分连接的所有内容都被忽略了

我以前遇到过这个错误,它是由连接字符串中的语法错误引起的。这种设置在较旧版本的操作系统中无关紧要,在较新版本中更为重要,但不会导致连接本身失败,因此很难跟踪


例如:端口号:8471有一个拼写错误,端口号:8471很难识别,但一旦发现,它就为我解决了这个问题。基本上,通过这部分连接的所有内容都被忽略了

想为这个问题添加另一个解决方案。系统上存在的SQL包在升级后和/或升级期间损坏。升级后必须删除这些包。这将摆脱旧的软件包,并允许系统在新的OS版本级别重新创建软件包。删除SQL包时,某些连接/作业可能会锁定这些包,因此您可能必须关闭主机服务。使用DLTSQLPKG命令执行删除操作。在v7r2和更高版本中,由于IBM改变了某些东西,因此需要执行一些额外的步骤。当涉及到包时,您可以在此处找到相关信息

或者告诉您的ODBC/JDBC/.Net数据适配器/提供程序
不要使用软件包。这可能不太理想,因为包具有性能优势

想为这个问题添加另一个解决方案。系统上存在的SQL包在升级后和/或升级期间损坏。升级后必须删除这些包。这将摆脱旧的软件包,并允许系统在新的OS版本级别重新创建软件包。删除SQL包时,某些连接/作业可能会锁定这些包,因此您可能必须关闭主机服务。使用DLTSQLPKG命令执行删除操作。在v7r2和更高版本中,由于IBM改变了某些东西,因此需要执行一些额外的步骤。当涉及到包时,您可以在此处找到相关信息


或者告诉您的ODBC/JDBC/.Net数据适配器/提供程序不要使用包。这可能不太理想,因为包具有性能优势

谢谢你的回复。查看日志后,我们向IBM报告了该问题。仍在等待修复。感谢您的回复。查看日志后,我们向IBM报告了该问题。仍在等待修复。