SQL29006N 迂到 Java 异常 exception-string

说明

抛出了 Java 异常 异常字符串

用户响应

如果问题仍然存在,请与技术服务代表联系。

SQL29007N 无法与查询控制器通信。

说明

Query Controller 可能没有在运行,或者通信已超时。

用户响应

请求数据库管理员启动 Query Controller。

SQL29008N 作业序号生成期间迂到错误。

说明

作业序号生成期间遇到错误。

用户响应

如果问题仍然存在,请与技术服务代表联系。

SQL29009N 已拒绝查询。 原因码:原因码

说明

查询已被拒绝。 原因码如下所示:

  1. DB2 不允许该查询生成结果集,或者该查询包含主机变量、参数标记、专用寄存器、已创建的临时表、已声明的临时表、会话变量、IDENTITY_VAL_LOCAL 函数、NEXT VALUE 表达式和/或 PREVIOUS VALUE 表达式。 因此,由于实际执行查询时状态可能无效,因此不能挂起该查询或在后台运行该查询。
  2. 该查询将更新 DB2 表,由于实际执行该查询时状态可能不再有效,因此它不能被挂起或在后台运行。
  3. 由于该查询包含嵌套的例程,因此不能将其排队。
  4. 由于该查询包含嵌套的例程,因此它不能被挂起或在后台运行。
  5. DB2 不允许将此查询排队。 当查询包含数组插入时,可能会发生这种情况。
  6. 当集中器打开时,DB2 不允许将查询排队。
  7. 对查询启用了 REOPT ALWAYS 选项时,DB2 不允许对查询进行排队。

用户响应

与数据库管理员联系以检查原因码并相应地增大适当的成本阈值。

SQL29010N 已取消查询提交。

说明

用户取消了查询提交操作。 没有提交查询。

SQL29011I 查询 query-ID 将在后台运行。

说明

用户已选择在后台运行查询。

SQL29013I 查询 query-ID 已挂起。

说明

Query Patroller 已将该查询置于挂起状态。

用户响应

与数据库管理员联系以释放该查询。

SQL29014N 为 DB2 注册表变量 registry-variable 指定的值无效。

说明

注册表变量 指定的值无效,因为存在 注册表变量 的下列限制:
DQP_NTIER
值必须为 OFF、RUN[:timeout] 或 CHECK[:timeout] 之一。
DQP_LAST_RESULT_DEST
长度一定不能超过 32 个字符。
DQP_TRACEFILE
长度一定不能超过 256 个字符。

用户响应

用 db2set 命令来更正 DB2 注册表变量 注册表变量 的值,并重新提交该查询。

SQL29015N 取消作业期间迂到错误。 原因码:原因码

说明

在尝试取消作业时遇到错误。 原因码映射至 SQL 或 DB2 消息。

用户响应

检查原因码,更正错误,并再次尝试执行该操作。

SQL29017N 查询 query-id 已取消。

说明

用户已将该查询取消。

SQL29020N 发生了内部错误。 错误:错误

说明

内部处理期间出错。

用户响应

请与 IBM 支持机构联系并提供 db2diag 日志文件和 qpdiag.log 文件。

SQL29021N 用户 用户标识 已暂挂。

说明

用户 用户标识 已被暂挂,无法将查询提交至数据库。

用户响应

与数据库管理员联系以重新激活该用户的提交者概要文件。

SQL30000N 执行失败,因为 "分布式协议" 错误不会影响后续命令或 SQL 语句的成功执行: 原因码 reason-code (subcode)(text)。

说明

发生了系统错误,该操作导致无法成功地处理当前环境命令或 SQL 语句。 此消息 (SQLCODE) 是在语句编译或执行时生成的。

不能处理该命令或语句。 当前事务不回滚,应用程序保持与远程数据库相连。

用户响应

记录消息号和原因码。 记录来自 SQLCA 的所有错误信息(如果有可能)。 尝试重新运行该应用程序。

如果存在足够的内存资源,但问题仍存在,那么在操作系统命令提示符处调用“独立跟踪设施”。

需要的信息:
  • 问题描述
  • SQLCODE 和原因码
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。

sqlcode:-30000

sqlstate:58008

SQL30002N 由于语句链中的先验条件,无法执行 SQL 语句。

说明

SQL 语句与 PREPARE 链接,但该 PREPARE 语句接收到警告 SQLCODE,要求程序或最终用户重新发出链接的语句或发出另一 SQL 请求。 只有在客户机/服务器环境中才会发生此错误。
  • 使用 DRDA 的分布式客户机将 OPEN 语句与 PREPARE 链接,但该 PREPARE 语句接收到 SQLCODE +1140。

该语句由于已链接而不能执行。

用户响应

必须将该语句作为独立请求再次发送。

sqlcode:-30002

sqlstate:57057

SQL30005N 执行失败,因为服务器不支持函数: 位置 location product ID pppvvrrm reason code reason-code (subcode)

说明

由于当前 SQL 语句路由至不支持请求的函数的服务器,因此该 SQL 语句失败。 该错误不会阻止进一步的 SQL 语句的成功执行。

无法执行该语句。 格式化 SQLCA。

用户响应

通知 DBA 以便在分析提示此 SQL 代码的 SQL 语句时获取帮助。

位置 标识不能支持需要的数据库协议以执行请求的函数的服务器的名称。 产品标识符的格式为 <pppvvrrm>。它是一个包含字母数字字符的八字节字段,用于标识不支持该功能的产品。 ppp 标识特定数据库产品。 vv 标识产品版本。 rr 标识产品发行版。 m 标识产品修改级别。

pppvvrrm 的可能的值包括:
ppp
DSN for zOS、ARI for VM/VSE、SQL for Linux/Unix/Windows、QSQ for iSeries 和 JCC for Java。
vv
版本号
rr
发行版级别
m
修改级别
要更正该问题,标识不受支持的函数。 要确定不受支持的函数及该函数不受支持的原因,请参阅指定的 原因码。 以下是 原因码 的可能的值以及它们对应的函数:
0010
LONG_STMTS
0020
LONG255_IDS
0030
EXTENDED_DESCRIBE
0040
EXTENDED_DIAGNOSTICS
0050
KEEP_DYNAMIC
0060
MULTI_ROW_FETCH
0070
MULTI_ROW_INSERT
0080
SQL_CANCEL
0090
SCROLLABLE_CURSORS
0100
CURSOR_ATTRIBUTES
0110
MONITORING
0120
SELECT_WITH_INSERT
0130
DATA_ENCRYPTION
0140
PACKAGE_PATH
0150
2PC_INCOMPATIBILITY
最后,可使用 子代码 值更进一步地标识该问题。 如果 子代码 非零,那么该子代码由单字节代码组成,以指示在网络中检测到该错误的方式:
  • 如果是 '01'x,那么表示充当请求者的本地 DB2 检测到该错误。 位置和 PRDID 标识出错的服务器。
  • 如果是 '02'x,那么表示服务器检测到该错误。 位置和 PRDID 标识本地数据库服务器的位置和级别。
  • 如果是 '03'x,那么表示中间服务器(中继点)检测到该错误,且该错误、位置以及 PRDID 标识出错的服务器。
  • 如果是 '04'x,那么表示中间服务器(中继点)检测到该错误,且该错误、位置和 PRDID 标识出错的服务器。
  • 如果是 '05'x,那么表示中间服务器(中继点)检测到错误。 SYNCLOG 映射错误。 无法将端服务器的 IPv6 地址映射到 IPv4 地址。

sqlcode:-30005

sqlstate:56072

SQL30020N 由于通信数据流中的语法错误将影响后续命令和 SQL 语句的成功执行,因此执行命令或 SQL 语句失败: 原因码 reason-code (subcode)

说明

不能处理该命令或语句。 当前事务被回滚,且应用程序与远程数据库断开连接。

一些可能的原因码是:

121C

指示用户无权执行请求的命令。

124C

请求的 DRDA 数据流包含语法错误。

1232

因为永久性错误,所以无法完成此命令。 在大多数情况下,服务器将异常结束。

1254

从客户机发送的命令导致远程服务器上的不具备结构和特定于实现的条件,对于该服务器没有要返回到客户机的构建的消息。

如果远程服务器是 DB2 UDB for OS/390,zOS,那么检查控制台记录,以了解有关此错误的信息。

如果远程服务器是 DB2 UDB for iSeries,那么通常需要服务器作业的作业日志和/或首次故障数据捕获 (FFDC) 假脱机文件来确定错误的原因。

如果远程服务器是 DB2 Linux 版、UNIX 版和 Windows 版数据库,那么检查远程数据库服务器的管理通知日志,以了解有关此错误的信息。

220A

目标服务器接收到无效的数据描述。 如果指定了用户 SQLDA,那么确保各字段初始化正确。 并且,确保长度不超过正在使用的数据类型允许的最大长度。

如果要在带有下级客户机的网关服务器环境中使用 DB2 Connect 产品,那么当应用程序的主机变量与查询的表的列描述不匹配时,可能会发生此错误。

用户响应

  • 对于原因码 121C,请与 DBA 联系以了解您是否有权执行所请求的命令。
  • 对于原因码 220A,如果是直接编写 SQLDA,那么应确保正确地对字段进行初始化,并且字段长度不超过正在使用的数据类型允许的最大长度。 如果您正在按“说明”中所描述那样使用 DB2 Connect,请检查应用程序的主机变量与表的列描述是否相匹配。
  • 对于原因码 124C,通常都涉及到执行存储过程。 如果确实是这种情况,应确保正确定义了存储过程参数,并且类型和长度与相应表列的类型相匹配。

如果您无法解决该问题(或者您接收到此消息中未解释的原因码),请咨询 DBA 以了解下列指示信息:

  • 在 http://www.ibm.com/software/data/support/ 中搜索可能涉及到您所遇到的情况的 APAR。
  • 尝试连接远程数据库,并重新运行该应用程序。 记录以下信息并与 IBM 支持机构联系:
    • 对于 Db2 for z/OS 数据服务器,调用“独立跟踪工具”并重试该情况以搜集跟踪信息。 提供 z/OS 跟踪、z/OS 控制台记录、DB2 Connect 服务器的 db2support 输出、与应用程序位于同一位置的 IBM 数据服务器客户机(如果不是与 DB2 Connect 服务器位于同一位置)中的 db2support 输出。
    • 对于 DB2 iSeries 版数据服务器,搜集由失败的 DRDA 服务器作业生成的所有 FFDC 数据、DB2 Connect 服务器中的 db2support 输出、与应用程序位于同一位置的 IBM 数据服务器客户机(如果不是与 DB2 Connect 服务器位于同一位置)中的 db2support 输出。
    • 问题描述
    • SQLCODE 和原因码
    • SQLCA 内容(如果有可能)
    • 如果可能,还应提供 IBM 数据服务器客户机和 DB2 Connect 服务器跟踪文件。

sqlcode:-30020

sqlstate:58009

SQL30021N 执行失败,因为分布式协议错误将影响后续命令和 SQL 语句的成功执行: 不支持级别为 级别 的管理器 管理器

说明

发生了系统错误,该错误导致应用程序无法成功地连接到远程数据库。 此消息(SQLCODE)是为 SQL CONNECT 语句生成的。 管理器级别 是数值,标识客户机与服务器之间的不兼容性。

无法处理该命令。

用户响应

记录消息号、管理器级别 值。 记录来自 SQLCA 的所有错误信息(如果有可能)。 尝试再次连接至远程数据库。

如果问题仍存在,那么在操作系统命令提示符处调用“独立跟踪设施”。 然后,请与服务代表联系并提供以下信息:
  • 问题描述
  • SQLCODE 和原因码
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。

sqlcode:-30021

sqlstate:58010

SQL30040N 执行失败,因为不可用的资源不会影响后续命令和 SQL 语句的成功执行: 原因 reason,资源类型 resource-type,资源名称 resource-name,产品标识 product-ID

说明

因为指定的资源已用完,所以应用程序不能处理命令或 SQL 语句。 当前事务不回滚,应用程序保持与远程数据库相连。

无法处理该命令。

用户响应

增大指定的资源的大小,并重新提交该命令。

sqlcode:-30040

sqlstate:57012

SQL30041N 执行失败,因为不可用的资源将影响后续命令和 SQL 语句的成功执行: 原因 reason,资源类型 resource-type,资源名称 resource-name,产品标识 product-ID

说明

因为远程数据库上的资源不可用,所以应用程序不能处理命令或 SQL 语句。 此 SQLCODE 是在语句编译或处理时生成的。

联合系统用户:数据源也可能会检测到此情况。

如果 资源名称 是“加密”或“解密”,那么表示用于密码加密或解密的用户出口不可用或有错误。

不能处理该命令或语句。

用户响应

调查远程数据库系统环境。

联合系统用户:

  • 如果密码加密或解密用户出口失败,那么 原因 是调用该用户出口时,联合服务器接收到的整数值。 确保与联合服务器链接编辑加密和解密用户出口时不出错。

    如果正在使用用户提供的用户出口,请检查用户出口源代码以确定返回 原因 的原因。 如果在用户出口源代码中发现错误,那么修正该错误,与联合服务器链接编辑对象代码,并重新发出失败的命令或语句。

  • 对于所有其他情况,请找出导致请求失败的数据源中的问题,更正数据源存在的问题,然后重新发出失败的命令或语句。

sqlcode:-30041

sqlstate:57013

SQL30050N number 命令或 SQL 语句在进行绑定时无效。

说明

当 precompile/bind 操作正在进行时,应用程序尝试发出无效的命令或 SQL 语句。<number> 是一个数字值,用于标识错误的命令或 SQL 语句。

未处理该命令或语句。

用户响应

如果该应用程序不是数据库管理器预编译器/绑定程序,那么在发出该命令或 SQL 语句之前,验证该绑定是否未活动。

如果应用程序是数据库管理器 precompiler/binder,请记录消息号 (SQLCODE) 和 <number> 值。 记录来自 SQLCA 的所有错误信息(如果有可能)。 尝试再次执行绑定操作。

如果存在足够的内存资源,但问题仍存在,那么在操作系统命令提示符处调用“独立跟踪设施”。

请与您的技术服务代表联系,并提供下列信息:

需要的信息:
  • 问题描述
  • SQLCODE 和原因码
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。

sqlcode:-30050

sqlstate:58011

SQL30051N 具有指定包名和一致性标记的绑定进程未处于活动状态。

说明

尝试在预编译/绑定未活动时发出预编译/绑定操作,或尝试在活动预编译/绑定操作期间使用无效的程序包名和/或一致性标记。

不能处理该命令或语句。

用户响应

如果应用程序不是数据库管理器预编译器/绑定程序,那么应验证在发出绑定操作之前预编译/绑定是否处于活动状态,以及在绑定操作上是否正在传送正确的信息。

如果该应用程序是数据库管理器预编译器/绑定程序,那么记录消息号 (SQLCODE) 和来自 SQLCA 的所有错误信息(如果有可能)。 尝试再次执行该操作。

如果存在足够的内存资源,但问题仍存在,那么在操作系统命令提示符处调用“独立跟踪设施”。

请与您的技术服务代表联系,并提供下列信息:

需要的信息:
  • 问题描述
  • SQLCODE 和原因码
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。

sqlcode:-30051

sqlstate:58012

SQL30052N 程序准备假设不正确。

说明

预编译器不识别正在编译的 SQL 语句,数据库不能处理。

无法处理该语句。

用户响应

确保语句正确,并尝试再次执行该操作。 如果问题仍存在,那么从程序中移除该语句。

sqlcode:-30052

sqlstate:42932

SQL30053N OWNER 的值未能通过远程数据库的授权检查。

说明

对预编译/绑定上 OWNER 选项指定的值无法通过远程数据库上的授权检查。 此 SQLCODE 是在预编译/绑定期间生成的。 它不是由数据库管理器预编译器/绑定程序生成的。

不能处理该预编译/绑定操作。

用户响应

确保您有权使用对 OWNER 选项指定的标识,或不使用 OWNER 选项。

sqlcode:-30053

sqlstate:42506

SQL30060N authorization-ID 没有执行操作 operation的特权。

说明

授权标识 <authorization-ID> 尝试执行指定 <operation>,但未被授予正确的权限。 此 SQLCODE 是在语句编译或处理时生成的。

无法处理该语句。

用户响应

确保已授予 <authorization-ID> 以执行所需操作所必需的权限。

sqlcode:-30060

sqlstate:08004

SQL30061N 在远程节点上找不到数据库别名或数据库名称 name

说明

该数据库名称不是远程数据库节点上的现有数据库。

无法处理该语句。

用户响应

使用正确的数据库名称或别名重新提交该命令。

联合系统用户:进行检查,以确保 SYSCAT.SERVERS 中的条目正确指定数据源的数据库名称。

sqlcode:-30061

sqlstate:08004

SQL30070N command-identifier 命令不受支持。

说明

远程数据库接收到它不识别的命令。 不能成功处理当前环境命令或 SQL 语句,也不能成功处理任何后续命令或 SQL 语句。

当前事务被回滚,且应用程序与远程数据库断开连接。 无法处理该语句。

用户响应

记录消息号 (SQLCODE) 和命令标识。 记录来自 SQLCA 的所有错误信息(如果有可能)。 尝试连接远程数据库,并重新运行该应用程序。

如果存在足够的内存资源,但问题仍存在,那么在操作系统命令提示符处调用“独立跟踪设施”。

请与您的技术服务代表联系,并提供下列信息:

需要的信息:
  • 问题描述
  • SQLCODE 和命令标识
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。

sqlcode:-30070

sqlstate:58014

SQL30071N object-identifier 对象不受支持。

说明

远程数据库接收到它不识别的数据。 不能成功处理当前环境命令或 SQL 语句,也不能成功处理任何后续命令或 SQL 语句。

当前事务被回滚,且应用程序与远程数据库断开连接。 无法处理该命令。

用户响应

记录消息号 (SQLCODE) 和对象标识。 记录来自 SQLCA 的所有错误信息(如果有可能)。 尝试连接远程数据库,并重新运行该应用程序。

如果存在足够的内存资源,但问题仍存在,

如果跟踪处于活动状态,那么在操作系统命令提示符处调用“独立跟踪设施”。

请与您的技术服务代表联系,并提供下列信息:

需要的信息:
  • 问题描述
  • SQLCODE 和对象标识
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。

sqlcode:-30071

sqlstate:58015

SQL30072N parameter-identifier 参数不受支持。

说明

远程数据库接收到它不识别的数据。 不能成功处理当前环境命令或 SQL 语句,也不能成功处理任何后续命令或 SQL 语句。

无法处理该命令。 当前事务被回滚,且应用程序与远程数据库断开连接。

用户响应

记录消息号 (SQLCODE) 和参数标识。 记录来自 SQLCA 的所有错误信息(如果有可能)。 尝试连接远程数据库,并重新运行该应用程序。

如果存在足够的内存资源,但问题仍存在,那么在操作系统命令提示符处调用“独立跟踪设施”。

请与您的技术服务代表联系,并提供下列信息:

需要的信息:
  • 问题描述
  • SQLCODE 和参数标识
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。

sqlcode:-30072

sqlstate:58016

SQL30073N 参数标识 参数值 不受支持。

说明

远程数据库接收到它不识别的数据。 不能成功处理当前环境命令或 SQL 语句,也不能成功处理任何后续命令或 SQL 语句。

当前事务被回滚,且应用程序与远程数据库断开连接。 无法处理该命令。

用户响应

记录消息号 (SQLCODE) 和参数标识。 记录来自 SQLCA 的所有错误信息(如果有可能)。 尝试连接远程数据库,并重新运行该应用程序。

如果存在足够的内存资源,但问题仍存在,

如果跟踪处于活动状态,那么在操作系统命令提示符处调用“独立跟踪设施”。 请与您的技术服务代表联系,并提供下列信息:

需要的信息:
  • 问题描述
  • SQLCODE、参数标识和值
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。
一些可能的参数标识包括:
002F
目标服务器不支持应用程序请求器请求的数据类型。 例如,当使用 DB2 Connect 来连接 DB2 2.3 时,除非将正确的 PTF 应用于 DB2 2.3,否则将返回此错误。 确保服务器的级别受请求器支持。
119C, 119D, 119E
目标服务器不支持应用程序请求器请求的 CCSID。 确保服务器支持请求器使用的 CCSID。
  • 119C - 验证单字节 CCSID。
  • 119D - 验证双字节 CCSID。
  • 119E - 验证混和字节 CCSID。

sqlcode:-30073

sqlstate:58017

SQL30074N 应答标识 不支持应答。

说明

客户机接收到它不识别的应答。 不能成功处理当前环境命令或 SQL 语句,也不能成功处理任何后续命令或 SQL 语句。

当前事务被回滚,且应用程序与远程数据库断开连接。 无法处理该语句。

用户响应

记录消息号 (SQLCODE) 和应答标识。 记录来自 SQLCA 的所有错误信息(如果有可能)。 尝试连接远程数据库,并重新运行该应用程序。

如果存在足够的内存资源,但问题仍存在,那么在操作系统命令提示符处调用“独立跟踪设施”。

请与您的技术服务代表联系,并提供下列信息:

需要的信息:
  • 问题描述
  • SQLCODE 和应答标识
  • SQLCA 内容(如果有可能)
  • 跟踪文件(如果有可能)。

sqlcode:-30074

sqlstate:58018

SQL30080N 发送或接收来自远程数据库的数据时发生通信错误 原因码

说明

原因码 包含通信管理器报告的原始错误代码。

对于 APPC 错误代码,格式是 pppp-ssssssss-dddddddd,其中 pppp 是主返回码,ssssssss 是辅助返回码,而 dddddddd 是检测数据。 这些错误代码值中的每一个都以十六进制表示法表示。 可能的主错误代码和次错误代码包括 0003-00000004 和 0003-00000005,这两个错误代码指示不能分配与数据库服务器的对话。 将仅对 APPC ALLOCATE 错误显示检测数据。

无法处理该命令。 尝试连接数据库不成功,或对连接的数据库的当前事务已回滚,且应用程序已与远程数据库断开连接。

参阅文档 IBM Communications Manager 1.0 APPC Programming Guide and Reference(SC31-6160) 以了解 APPC 主返回码和辅助返回码的解释。 有关 APPC 检测数据的详细信息,请参阅 IBM Communications Manager 1.0 Problem Determination Guide(SC31-6156)

用户响应

确保数据库管理器和通信管理器都已在数据库服务器上启动,且所有通信管理器配置参数都正确。

注: 如果消息中嵌入的原因码为 0003-084C0001 ,那么此消息的一个可能的原因是您尝试与不是服务器的工作站进行远程连接。 验证该远程工作站是否是服务器。 如果它不是服务器,那么安装数据库管理器作为服务器。

sqlcode:-30080

sqlstate:08001

SQL30081N 检测到通信错误。 正在使用的通信协议:协议。 正在使用的通信 API:接口。 检测到错误的位置:位置。 检测到错误的通信功能:功能。 特定于协议的错误代码:rc1rc2rc3

说明

通信子系统检测到错误。

以下是对标记值的描述:

协议位置

使用的通信协议以及用来唯一标识检测到错误的节点的信息。 如果出错时得不到位置信息,那么表示未填充 位置 标记。 有效标记值是:

  • 协议为 TCP/IP;位置是 IPv4 或 IPv6 地址。
  • 协议是 APPC;位置是标准 LU 名称(networkID.LUname)。
  • 协议是 MQ;位置是 MQ 队列名称。
  • 协议是 SOAP、SSL、SOCKS 和 HTTP;位置是采用点分表示法的因特网地址。
接口

用来调用前面的列表项中的协议服务的应用程序编程接口。 有效标记值是:SOCKETS、SOCKS、CPI-C、MQI-CLIENT、GSKit 和 HTTP。

函数

返回了错误代码的通信子系统功能的名称。

如果 protocol 是 TCP/IP,那么下面是一些常见场景的描述:

  • 原因码 rc1rc2rc3 表示:
    • 如果存在 rc1,那么它将包含 TCP/IP 功能所返回的 errno。 在 Windows 操作系统上,这是 WSA errno。
    • 如果存在 rc2,它将包含由 TCP/IP 名称解析功能返回的 h_errno 值。 在 Windows 操作系统上,这是 WSA 错误号。
    • 如果存在 rc3 并且包含“0”,那么表示远程端已终止连接。 如果在客户机上接收到该错误,那么远程端可能是一个服务器或网关。 如果在网关上接收到该错误,那么远程端可以是客户机或服务器。
  • 如果 协议 = TCP/IP,且 rc1=*、rc2=* 和 rc3=0,那么可能的原因是:
    • 服务器上的数据库代理程序被系统管理员强制关闭。
    • 由于已达到系统上的内存限制,因此数据库代理程序无法在服务器上启动。
    • 连接可能已被 TCP/IP 级别的远程服务器关闭。
    • 由于关键数据库管理器进程异常终止,因此服务器上的数据库代理程序终止。
  • 在 Windows 操作系统上,如果 协议 = TCP/IP、功能 = WSAStartup 且 rc1 = 0,那么 rc2 包含 DB2 请求的“Windows 套接字规范”版本级别,而 rc3 包含“Windows 套接字”DLL 支持的“Windows 套接字规范”版本级别。 原因:版本级别不匹配。
  • 如果 协议 = TCP/IP、功能 = connect 且 rc1 = ECONNREFUSED/WSAECONNREFUSED、AIX (79)、Windows (10061)、linux (111)、SUN (146) 和 HP (239),那么尝试连接时会被拒绝。 原因可能是:
    • 未在客户机上正确对远程数据库服务器进行编目。 在客户机/网关/服务器方案中,应确保在网关上正确编目了主机项。
    • 尚未使用正确的通信参数来正确配置服务器上的数据库管理器配置文件。 检查是否已使用 TCP/IP 服务名称或端口号正确地配置 SVCENAME 数据库管理器配置参数以及端口号是否唯一。 如果已在服务器上更新了数据库管理器配置参数,那么必须停止并重新启动数据库管理器,以使更改生效。 在服务器和客户机上指定的 TCP/IP 服务名称或端口号可能不匹配。 通过检查 services 文件来确保服务名称映射至正确的端口号。 要进行此检查,您可以阅读 services 文件,也可以检查运行“netstat -a”命令时的输出。
    • 远程数据库服务器中的防火墙已阻止建立连接。 验证是否已正确地将防火墙配置为接受来自客户机的连接请求。
    • 服务器上的 DB2COMM 环境变量未指定客户机使用的通信协议。 检查是否已经指定了 TCPIP。 发出 db2set 命令来了解已经设置的内容。 运行命令“db2set DB2COMM = TCPIP”以设置值。
    • 服务器上的数据库管理器未启动、未成功启动或者已停止。 服务器应返回 SQL1063N 而不是 SQL5043N。 如果您在发出“db2start”之前使用“db2 update dbm cfg using diaglevel 4”命令将数据库管理器配置参数 DIAGLEVEL 设置为 4,那么管理通知日志将提供有关已成功启动哪些协议的详细信息。 检查管理通知日志。
    • 此时,服务器可能太繁忙而无法处理入局连接引入的大量信息。
    • 网络故障,请与网络管理员联系。 可以使用协议测试程序 pctt 进行测试,从而验证这不是 DB2 造成的问题。
  • 如果 协议 = TCP/IP、功能 = connect 且 rc1 = ETIMEDOUT/WSAETIMEDOUT、AIX (78)、Windows (10060)、linux (110)、SUN (145) 和 HP (238),那么尝试连接时在真正建立连接之前就发生超时。 原因可能是:
    • 在客户机和/或网关上的节点目录的“主机名”字段中,编目了不正确的主机名或 IP 地址。
    • 网络速度过慢,或者服务器由于太繁忙而导致无法在合理时间内对连接请求作出响应;您可能需要调整系统 TCP 连接超时值和/或 DB2TCP_CLIENT_CONTIMEOUT 值。
  • 如果 协议 = TCP/IP、功能 = recv 且 rc1 = ECONNRESET/WSAECONNRESET、AIX (73)、Windows (10054)、linux (104)、SUN (131) 和 HP (232),那么远程端会通过执行“硬”关闭或“异常终止”关闭来将连接复位。 原因可能是:
    • 连接可能已被 TCP/IP 级别的远程网关或服务器关闭(例如,防火墙问题、电源故障和网络故障导致连接被关闭)。
    • 启用了客户端连接池,但是未处理连接故障。 如果在连接至数据库时产生故障并且启用了连接池,那么编写应用程序,然后重试进行连接。
    • 可能是主机上的线程超时导致的。 检查主机上的系统日志中是否存在 IDTHTOIN 消息。 如果可能,应调整设置。 如果无法调整此设置,请在网关上禁用连接池,或者确保正确地关闭所有对象(例如,在应用程序操作完成后关闭 WITH HOLD 游标)。
    • 服务器上的数据库代理程序被数据库管理员强制关闭。
    • 由于关键数据库管理器进程异常终止,因此服务器上的数据库代理程序终止。
  • 如果 协议 = TCP/IP、功能 = recv 且 rc1 = ETIMEDOUT/WSAETIMEDOUT、AIX (78)、Windows (10060)、linux (110)、SUN (145) 和 HP (238),那么是因为远程系统未能作出响应而导致连接被断开。 原因可能是:
    • 因为应用程序设置了“查询超时”值或者存在明确的取消请求,所以从 CLI 应用程序中调用了 SQLCancel()。 调整由应用程序设置的“查询超时”值。 如果无法调整该值,那么调整 db2cli.ini 文件中的 QueryTimeoutInterval 设置。 在 db2cli.ini 文件中使用 QueryTimeoutInterval=0(无超时)来测试 QueryTimeout 是否是造成应用程序故障的原因。 预计在此方案中现有连接将会发生故障。
    • 网络速度太慢,或者服务器可能太繁忙而无法在合理时间量以内对 recv 请求作出响应;您可能需要调整系统 TCP recv 超时值。
  • 如果 协议 = TCP/IP、功能 = selectForConnectTimeout 且 rc1 = EINPROGRESS/0、AIX (55)、Windows (0)、linux (115)、SUN (150) 和 HP (245),那么连接请求由于超时而无法成功完成。 原因可能是:
    • 系统连接超时,或者 DB2TCP_CLIENT_CONTIMEOUT 设置的超时值导致发生超时。 调整这些值之后再试。
  • 如果 协议 = TCP/IP、功能 = selectForRecvTimeout 且 rc1 不相关,那么 recv 请求由于超时而无法成功完成。 原因可能是:
    • 系统 recv 超时,或者 DB2TCP_CLIENT_RCVTIMEOUT 设置的超时值导致发生超时。 调整这些值之后再试。

如果 协议 是 APPC

  • rc1 包含来自 CPI-C 函数的返回码。
  • 如果存在 rc2,那么它将包含来自 CPI-C 函数调用的全局 errno 值。
  • rc3 不适用。

如果 协议 是 MQ

  • rc1 包含函数完成代码,1 表示警告,2 表示错误。
  • 1rc2 包含特定于 MQ 的错误代码。
  • rc3 不用于 MQ。

如果 协议 是 SOAP,那么 rc1 包含来自 SOAP 通信函数的返回码。

如果 协议 是 SSL,那么 rc1 包含来自安全套接字层(GSKit)的返回码。

如果 协议 是 SOCKS

  • rc1 包含来自 SOCKS 代理服务器的返回码。
  • rc2 包含版本(4 或 5)的协议。
  • rc3 包含所使用的认证方法(SOCKS V5)。

如果 协议 是 HTTP,那么 rc1 包含来自远程 HTTP Server 的 HTTP 返回码。

用户响应

解决由返回的原因码和标记值共同指示的问题。

sqlcode:-30081

sqlstate:08001、5UA0G 和 5UA0H

SQL30082N 安全性处理失败,原因为 reason-code (reason-string)。

说明

在安全处理期间出错。 安全性错误的原因由 原因码 和对应的 原因字符串 值描述。

下列是原因码列表和相应原因字符串的列表:

0(未指定)

未指定特定安全性错误。

1(密码已到期)

该请求中指定的密码已到期。

2(密码无效)

该请求中指定的密码无效。

3(密码丢失)

该请求未包括密码。

4(协议违例)

该请求违反安全性协议。

5(用户标识丢失)

该请求未包括用户标识。

6(用户标识无效)

该请求中指定的用户标识无效。

7(用户标识被撤销)

该请求中指定的用户标识已被撤销。

8(组无效)

该请求中指定的组无效。

9(组中的用户标识被撤销)

该请求中指定的用户标识在组中已被撤销。

10(用户标识不在组中)

该请求中指定的用户标识不在组中。

11(用户标识未在远程 LU 上授权)

该请求中指定的用户标识在远程“逻辑单元”上未经授权。

12(用户标识未从本地 LU 授权)

当该请求中指定的用户标识来自本地“逻辑单元”时,在远程“逻辑单元”上未经授权。

13(未将 TP 的权限授予用户标识)

该请求中指定的用户标识无权访问“事务程序”。

14(安装出口失败)

安装出口失败。

15(处理失败)

服务器上的安全性处理失败。

16(新密码无效)

根据更改密码请求上指定的密码不符合服务器的需求。

17(功能不受支持)

客户机指定的安全性机制对此服务器无效。 某些典型示例:

  • 客户机将新密码值发送给不支持更改密码功能的服务器。
  • 客户机将 SERVER_ENCRYPT 认证信息发送给不支持密码加密的服务器。 服务器和客户机中的认证类型目录信息必须相同。
  • 客户机将用户标识(但是不包括密码)发送至不支持仅按用户标识进行认证的服务器。
  • 客户机尚未指定认证类型且服务器尚未以支持的类型响应。 这可能包括服务器返回多种类型,而客户机无法从这些类型中进行选择。
  • “IBM 数据服务器 ODBC 和 CLI 驱动程序”和“IBM 数据服务器驱动程序软件包”不支持 CLIENT AUTHENTICATION 类型。
18(命名管道访问被拒绝)

因为安全违例,所以命名管道是不可访问的。

19(用户标识被禁用或受限制)

该用户标识已被禁用,或者该用户标识已被限制为此时不能访问操作环境。

20(相互认证失败)

正在访问的服务器无法通过相互认证检查。 服务器是冒充者,或发送回的凭单已破坏。

21(资源暂时不可用)

因为资源暂时不可用,所以服务器上的安全性处理被终止。 例如,在 AIX 上,可能已没有用户许可证可用。

24(用户名和/或密码无效)

指定的用户名和/或指定的密码无效。 一些特殊原因是:

  1. 如果您最近更改了对一些 DB2 关键文件(例如,db2ckpw)的许可权,或者已将这些文件包含在新的修订包中,那么可能是尚未运行用来更新实例的 db2iupdt 命令。
  2. 正在使用的用户名的格式可能无效。 例如,在 UNIX 和 Linux 平台上,用户名必须全部都采用小写。
  3. 在指定目录信息时可能产生了错误。 例如,可能未指定正确的认证类型,或者,如果可能,在本地系统上可能尚未编目远程服务器。
25(不允许连接)

安全性插件不允许连接。

26(意外的服务器错误)

服务器安全性插件遇到了意外错误。 服务器上的管理通知日志文件包含更具体的问题信息。 以下是可能会导致问题的一些问题的示例:

  • 未启动安全服务。
  • 启动 DB2 服务的用户标识没有管理特权。
27(服务器凭证无效)

服务器安全性插件遇到了无效的服务器凭证。

28(服务器凭证已到期)

服务器安全性插件遇到了已到期的服务器凭证。

29(客户机安全性令牌无效)

服务器安全性插件遇到了由客户机发送的无效安全性令牌。

30(客户机插件缺少 API)

客户机安全性插件缺少必需的 API。

31(客户机插件类型错误)

客户机安全性插件属于错误的插件类型。

32(未知的客户机 GSS-API 插件)

客户机安全性插件没有相匹配的 GSS-API 安全性插件可用于连接至数据库。

33(无法装入客户机插件)

无法装入客户机安全性插件。

34(客户机插件名称无效)

客户机安全性插件名称无效。

35(客户机插件 API 版本不兼容)

客户机安全性插件报告了与 DB2 不兼容的 API 版本。

36(意外的客户机错误)

客户机安全性插件遇到了意外错误。

37(服务器主体名称无效)

服务器安全性插件遇到了无效的主体名称。

38(客户机凭证无效)

客户机安全性插件遇到了无效的客户机凭证。

39(客户机凭证已到期)

客户机安全性插件遇到了已到期的客户机凭证。

40(服务器安全性令牌无效)

客户机安全性插件遇到了由服务器发送的无效安全性令牌。

41(切换用户无效)

已将客户机配置成请求可信连接并在该可信连接中切换用户。 未建立可信连接,因此切换用户请求无效。

42(需要具备 ROOT 用户能力)

当前未启用使用本地客户机或服务器密码来进行认证。

43(非 DB2 Query Manager 产品不允许连接)

非 DB2 Query Manager 产品不允许进行连接。

用户响应

确保提供了正确的用户标识和/或密码。

该用户标识可能已被禁用、该用户标识可能被限制为只能访问特定工作站,或该用户标识可能被限制为只能在特定时间内操作。

17

再次尝试运行该命令,并使用受支持的认证类型。 确保目录信息指定正确的认证类型。

20

确保启动了服务器的认证机制,然后再次尝试。

24

针对此消息中先前描述的特定问题原因的解决方案是:

  1. 运行 DB2IUPDT <InstName> 以更新实例。
  2. 确保创建的用户名有效。 查看“DB2 通用命名规则”。
  3. 确保目录信息正确。
25

更改用于连接的数据库名称或者用来连接至此数据库的 TCP/IP 地址。

26

修正管理通知日志中的插件错误消息正文所指出的问题。

如果您无法更正该问题,那么调用“独立跟踪工具”并重试该情况,以便为 IBM 支持机构搜集信息。

27

验证在安全性插件初始化期间提供了服务器凭证并且采用了安全性插件识别的格式。 作为将用来接受上下文的凭证,它必须是 ACCEPT 或 BOTH 凭证。

28

请与 DBA 联系。 在重新提交该命令之前必须更新服务器的凭证。 如果进行更新改变了凭证句柄,那么必须 db2stop 和 db2start。 有关如何更新服务器凭证的信息,请参阅为安全性插件使用的认证机制而提供的文档。

29

重新提交该语句。 如果问题仍然存在,那么验证客户机安全性插件正在生成有效安全性令牌。

30

检查管理通知日志文件以找到丢失的必需 API 的名称。 将丢失的 API 添加到安全性插件中。

31

在适当的数据库管理器配置参数中指定正确类型的安全性插件。 例如,不要为 SRVCON_GSSPLUGIN_LIST 数据库管理器配置参数指定基于用户标识-密码的安全性插件。

32

安装数据库服务器在客户机上使用的相匹配的安全性插件。 确保所指示的安全性插件位于客户机插件目录中。

33

查阅客户机上的管理通知日志文件以了解更多信息。 修正管理通知日志中的错误消息正文所标识的问题。

34

指定有效的安全性插件名称。 该名称不应该包含任何目录路径信息。

35

确保安全性插件正在使用受支持的版本的 API,并且它报告的是正确的版本号。

36

查阅客户机上的管理通知日志文件以了解更多信息。 修正管理通知日志中的错误消息正文所标识的问题。

37

检查管理通知日志文件以了解主体名称。 确保主体名称采用的是安全性插件能够识别的格式。

38

验证客户机凭证(由 db2secGenerateInitialCred 生成或者作为入站代表的凭证提供)采用的是安全性插件识别的格式。 作为将用来启动上下文的凭证,它必须是 INITIATE 或 BOTH 凭证。

39

发出该语句的用户必须获得适当的凭证(或者重新获得它们的初始凭证),然后重新提交该语句。

40

重新提交该语句。 如果问题仍然存在,那么验证服务器安全性插件正在生成有效安全性令牌。

41

使用有效凭证重新建立可信连接,并且重新提交切换用户请求。

42

要对非 root 用户进行的安装启用本地客户机或服务器认证,系统管理员必须运行 db2rfe 脚本。 或者,可以使用安全插件来进行认证。

43

如果需要更多说明,请与 Query Manager 产品的管理员联系。

sqlcode:-30082

sqlstate:08001

SQL30083N 由于安全原因 reason-code (reason-string) ,尝试更改用户标识 uid 的密码失败。

说明

因为安全性信息无效或不正确,所以尝试更改密码被拒绝。 安全性错误的原因由 原因码 和相应的 原因字符串 值描述。

下列是原因码列表和相应原因字符串的列表:
0(未指定)
未指定特定安全性错误。
1(当前密码无效)
该请求中指定的旧密码无效。
2(新密码无效)
该请求中指定的密码在要更改密码的系统强制执行的密码规则之下无效。
3(当前密码丢失)
该请求未包括旧密码。
4(新密码丢失)
该请求未包括新密码。
5(用户标识丢失)
该请求未包括用户标识。
6(用户标识无效)
该请求中指定的用户标识无效。
7(用户标识被撤销)
该请求中指定的用户标识已被撤销。 不能更改已被撤销的用户标识的密码。
14(安装出口失败)
安装安全出口失败。
15(处理失败)
服务器上的安全性处理失败。
17(功能不受支持)
系统不支持更改密码功能,或者此时由于存在用户帐户限制而不支持更改密码功能。
19(用户标识被禁用或受限制)
该用户标识已被禁用,或者该用户标识已被限制为此时不能访问操作环境。
23 (未配置 DCS 条目中的 CHGPWD_SDN)
要更改通过 SNA 连接的主机系统上的 MVS 密码,必须用 ,,,,,,,CHGPWD_SDN 参数字符串来将 DCS 数据库编目。 ,,,,,,,CHGPWD_SDN 参数字符串标识“密码到期管理”(PEM) 的符号目标名称。
24(用户名和/或密码无效)
指定的用户名和/或指定的密码无效。

用户响应

确保提供了正确的用户标识、当前密码和新密码。

该用户标识可能已被禁用、该用户标识可能被限制为只能访问特定工作站,或该用户标识可能被限制为只能在特定时间内操作。

某些特定原因码的指示信息如下:
14
检查实例子目录(通常为“db2”)中的文件 db2pem.log,以了解所遇到问题的详细描述。
23
使用 ,,,,,,,CHGPWD_SDN 参数来对 DCS 数据库进行编目,正如在 DB2 Connect User's Guide 中指定的那样。

sqlcode:-30083

sqlstate:08001

SQL30090N 操作对于应用程序执行环境无效。 原因码:原因码

说明

此操作对应用程序执行环境无效。 例如,操作可能对具有特殊语句或 API 限制的应用程序无效 - 如那些在“XA 分布式事务处理”环境(如 CICS)中操作的应用程序; 那些通过 CONNECT 的 2 类连接设置进行操作的应用程序;或那些使用联合系统功能来更新多个不同种类的数据源的应用程序。 操作被拒绝。

可能的原因码是:

01

针对只读数据库发出了更改数据的 SQL 请求(如 INSERT 或 CREATE); 或针对只读数据库调用了存储过程。 只读数据库包括下列类型:

  • 在未使用“同步点管理器”或者远程 DRDA 数据库不支持第 2 层 DRDA 协议时,当在具有连接设置 SYNCPOINT TWOPHASE 的工作单元中操作,并在非 XA/DTP 环境中执行时使用 DRDA 访问的数据库。
  • 当“同步点管理器”网关不可用或远程 DRDA 数据库不支持第 2 层 DRDA 协议时,在 XA/DTP 环境中使用 DRDA 访问的数据库。
  • 当 SYNCPOINT ONEPHASE 连接设置对工作单元有效时,不是第一个被更新的数据库。
02

从具有设置 CONNECT 类型 2 连接,或正在 XA/DTP 环境中运行的应用程序中发出导致内部落实的 API(如“预编译”、“绑定”或“重组表”)。

03

当使用 ENCINA 或 TUXEDO 事务处理监视器时,在 XA/DTP 环境中对挂起的游标发出 SQL OPEN。

04

当在 XA/DTP 环境中时,发出 DISCONNECT 语句。

05

在 CONNECT 类型 2 连接或 XA/DTP 环境中发出包含 COMMIT 语句的复合 SQL 语句。

06

在 XA/DTP 环境中发出 SET CLIENT API。

07

在事务管理器未向其提供两阶段落实协调的工作单元中访问辅助数据库。 为确保数据完整性,不允许执行该操作。

08

为了使用来自不同于并发连接的数据库的源的落实协调而尝试访问数据库。 不能混合两种类型的协调,对当前数据库的操作被拒绝。

09

尝试对在“同步点管理器”协调下访问的数据库执行 XA/DTP 本地事务。

10

在下列情况下,对挂起的游标发出 SQL OPEN。

  • XA/DTP 环境,或
  • 联合服务器正在访问在两阶段落实数据源上定义的昵称

在这些环境中不支持游标挂起。

11

传递不支持操作。

12

由于对数据源的限制,因此插入/更新/删除操作需要有时间戳记列和唯一索引。

对于要访问数据源的更新/删除操作:

  • Fujitsu RDB2 要求存在唯一索引。
13

定位 UPDATE 或 DELETE 操作需要游标的 SELECT 列表中存在一列,但该列不存在于游标的 SELECT 列表中。

14

存在可更新游标、游标挂起和“可重复的读”的隔离级别的非法组合。 无效组合是:

  • 隔离级别“可重复的读”和 WITH HOLD 游标
  • 带 FOR UPDATE 的 WITH HOLD 游标
15

留作将来使用

16

SYSCAT.SERVERS 中有非法类型列和协议列值组合。

17

不能对昵称发出 REORG 实用程序。

18

当工作单元中的一个或多个数据源仅支持一阶段落实时,发出了将导致多个数据源被更新的更新请求(或导致更新系统目录表的 DDL 操作)。 原因可能是:

  • 尝试更新仅支持一阶段落实的数据源,但在同一工作单元中已更新另一数据源。
  • 尝试更新支持两阶段落实的数据源,但在同一工作单元中已更新另一仅支持一阶段落实的数据源。
  • 尝试更新本地联合服务器表,但在同一工作单元中已更新仅支持一阶段落实的数据源。
  • 当应用程序通过 CONNECT 的 2 类连接设置操作时,尝试更新仅支持一阶段落实的数据源。
19

传递会话中的数据源不支持应用程序主机变量数据类型。

20

一个“工作单元”在进行时发出了 SET CLIENT INFORMATION。

21

您希望在指定的数据源处执行的操作不受包装器的支持,而 DB2 正是通过该包装器来访问数据源。 请参阅文档以了解此包装器支持哪些操作。

22

在函数、数据更改表引用、动态复合语句、触发器以及具有以下特性的应用程序执行环境中,联合插入、更新或删除操作以及使用 SQL 数据访问指示 MODIFIES SQL DATA 进行的联合过程调用是无效的:

  • SAVEPOINT 有效
  • 使用了可滚动游标
  • 目标视图包含多个表或昵称
23

API、数据结构或设置不受支持。

24

指定的包装器不支持数据类型映射。

25

指定的包装器不支持函数映射。

26

在可信连接中,只有在处理了落实/回滚之后,应用程序才能切换可信用户标识。

27

在同一个连接中使用了同一包装器库的多台两阶段落实服务器,但客户机库对此类使用作了限制

28

在同一个连接中混合使用了同一包装器库的一阶段落实服务器和两阶段落实服务器,但客户机库对此类使用作了限制

29

应用程序尝试从一个存储过程中发出切换用户请求。

31

CREATE WRAPPER 语句失败,因为 DB2LIBPATH 环境变量未包含客户机库的路径,并且数据库管理器无法自动将该客户机库路径添加到 DB2LIBPATH 环境变量。

用户响应

通过执行下列其中一个步骤更正该问题:

对于原因 01、02、03、04、06、19 或 29,

移除不受支持的语句或 API。

另外,对于原因 01、02、03、04、06 或 29,

在支持失败的语句或 API 的另一环境中执行应用程序。

对于原因 05,

将 COMMIT 请求移到复合语句之外。

对于原因 07,

在一个工作单元内仅访问一个数据库,对于该工作单元,会将 EXEC SQL COMMIT 或 EXEC SQL ROLLBACK 替代同步点请求发送至外部事务管理器。 如果必须在工作单元里访问多个数据库,那么利用外部事务管理器产品提供的落实控制接口。

对于原因 08,

确保在工作单元内访问的所有数据库都在相同类型请求的落实控制之下: 外部事务处理监视器(如 CICS SYNCPOINT)或本地 COMMIT 和 ROLLBACK EXEC SQL。

对于原因 09,

执行下列其中一个步骤:

  • 执行该事务作为 XA/DTP 全局事务。
  • 在非 XA/DTP 环境中访问数据库。
  • 如果该事务是只读的,那么不要将“同步点管理器”的服务用于数据库连接。
对于原因 10 到 17(联合服务器用户),

找出导致请求失败的数据源的问题并且检查对该数据源的限制。

对于原因 18,

执行下列其中一个步骤:

  • 在对另一数据源发出更新之前,提交 COMMIT 或 ROLLBACK。
  • 如果需要在工作单元中更新多个数据源,那么对于需要更新的所有数据源,确保已将 db2_two_phase_commit 服务器选项设置为 'Y'。
  • 如果要更新的数据源仅支持一阶段落实,而应用程序正在通过 CONNECT 的 2 类连接设置值进行操作,那么更改应用程序,使之通过 CONNECT 的 1 类连接设置进行操作。
对于原因 20,

在调用 API 之前提交“落实”或“回滚”。

对于原因 22,

移除联合插入、更新或删除操作,或者移除使用 SQL 数据访问指示 MODIFIES SQL DATA 进行的联合过程调用,或者:

  • 在函数、数据更改表引用、动态复合语句或触发器外部执行联合插入、更新或删除操作
  • 在函数、动态复合语句或触发器外部使用 SQL 数据访问指示 MODIFIES SQL DATA 来执行联合过程调用
  • 释放生效的保存点
  • 移除可滚动游标的使用
  • 重新定义目标视图以仅引用一个表或昵称
  • 在触发器外执行联合插入、更新或删除操作。
对于原因码 23,

仅使用受支持的 API、数据结构和设置。

对于原因 24,

如果失败的语句为 CREATE TYPE MAPPING,那么不要重新提交该语句。 如果失败的语句为 CREATE SERVER,那么检查联合目录以找到服务器类型的类型映射并删除这些映射。 在任何一种情况下,都参阅数据源文档以了解有关数据源支持的类型和类型映射的信息。

对于原因码 25,

如果失败的语句为 CREATE FUNCTIONMAPPING,那么不要重新提交该语句。 如果失败的语句为 CREATE SERVER,那么检查联合目录以找到服务器类型的函数映射并删除这些映射。 在任何一种情况下,都参阅数据源文档以了解有关数据源支持的函数和函数映射的信息。

对于原因码 26:

确保在执行事务期间未切换可信用户标识。

对于原因码 27:

应用程序无法在同一连接中访问此数据源的多台两阶段落实服务器。 在另一环境中执行该应用程序。

对于原因码 28:

当与两阶段落实服务器的连接处于活动状态时,应用程序无法访问一阶段落实服务器,反之亦然。 在另一环境中执行该应用程序。

对于原因码 31,

请执行以下步骤:

  1. 手动将新包装器的客户机库的路径添加到 DB2LIBPATH 环境变量。
  2. 重新启动数据库管理器。
  3. 再次执行 CREATE WRAPPER 语句。

sqlcode:-30090

sqlstate:25000

SQL30101W 忽略 REBIND 请求上指定的绑定选项。

说明

REBIND 请求上指定了绑定选项,但数据库服务器不支持任何绑定选项的重新说明。 指定的绑定选项将被忽略,将使用原始 BIND 请求中的选项。

用户响应

不需要执行任何操作。 这只是警告状态。

如果数据库服务器返回其他警告 SQLCA,那么“sqlerrmc”标记将按此顺序指示关于其他 SQLCA 的以下信息:
  • sqlcode (SQL 返回码)
  • sqlstate (通用 SQL 返回码)
  • sqlerrp (产品名)
  • sqlerrmc (SQL 消息标记)

sqlcode:+30101

sqlstate:01599

SQL30104N BIND 或 PRECOMPILE 选项 option-name 出错,值为 value-name

说明

处理 BIND 或 PRECOMPILE 参数期间,BIND 或 PRECOMPILE 选项或值不可接受,或选项与值的配对不合适。

无法处理该语句。

用户响应

检查命令选项和值,以确定错误并重新提交该命令。

sqlcode:-30104

sqlstate:56095

SQL30106N 针对多行 INSERT 操作检测到无效输入数据。

说明

对多行 INSERT 操作的一行的输入数据检测到错误。 将不会插入其他行。 对于原子操作,回滚所有插入的行。 对于非原子操作,不会回滚在遇到包含无效输入数据的行前成功插入的行。

用户响应

更正包含无效输入数据的行并对未插入的行再次提交多行 INSERT。

sqlcode:-30106

sqlstate:22527

SQL30108N 自动客户机重新路由环境中的连接失败。 已回滚了事务。 主机名或 IP 地址:主机名。 服务名称或端口号:服务名称。 原因码:原因码。 连接故障码:连接故障码。 底层错误:底层错误

说明

可以使用自动客户机重新路由功能将连接故障造成的中断减少到最低限度,使数据库应用程序能够继续处理事务。 自动客户机重新路由功能检测到连接故障时,会返回此消息。

reason-code

标记 原因码 的值指示哪些专用寄存器将应用到新连接:

  • 1 或 3:会返回直到此故障点为止的所有专用寄存器设置。
  • 2 或 4:会在新连接上重放直到前一个落实点为止的所有专用寄存器设置(对于 DB2 for z/OS V10.1.5 和更高版本:还包括会话全局变量)。

标记 原因码 的值也指示是在当前组还是新组中重新建立连接:

  • 1 或 2:会在当前组中重新建立连接。
  • 3 或 4:会在备用组中重新建立连接。
主机名服务名称

标记 主机名服务名称 的值取决于标记 原因码

  • 如果 原因码 是 1 或 3,那么标记 主机名服务名称 的值指的是新连接。
  • 如果 原因码 是 2 或 4,那么标记 主机名服务名称 的值取决于是否启用了工作负载均衡:
    • 如果启用了工作负载均衡,那么标记 主机名 中给定的主机名及 服务名称 中给定的 IP 地址指的是发生故障的连接。
    • 如果未启用工作负载均衡,那么标记 主机名 中给定的主机名及 服务名称 中给定的 IP 地址指的是新连接。
connection-failure-code

标记 连接故障码 的值指示连接故障的性质:

  1. 通信故障。 例如:已配置连接超时或查询超时,但在发生超时之前,成员进行了故障转移。
  2. 数据库服务器操作。 例如:DB2 成员已关闭,或者数据库已停顿。
  3. 发生 SQL 错误。
  4. 在客户机上发生中断。 例如:查询发生超时,或者调用了 SQLCancel。
underlying-error

标记 底层错误 的值取决于标记 连接故障码 的值:

  • 如果 连接故障码 是 1 或 2,那么 底层错误 包含特定于平台的错误号。 示例 1: 当导致连接失败的 SQLCODE 为 -30081 且 connection-failure-code 为 1 或 2 时, 底层错误 可能包含消息 SQL30081N的运行时标记 rc1 的值。 示例 2:对于 Java 应用程序,此值是从 Java 套接字 API 接收到的通信异常消息标记。
  • connection-failure-code 为 3 时, 底层错误 包含导致连接失败的 SQLCODE。
  • 如果 连接故障码 是 4,那么 底层错误 包含下列其中一个数字值:
    • 1 - 客户机已取消执行,因为查询超时。
    • 2 - 驱动程序收到了中断请求或取消请求。
    • 3 - 客户机已取消执行,因为执行时间超过了 queryTimeout 属性的值。

如果数据库服务器不为 底层错误 提供值,那么将对 底层错误 返回值“*”。

用户响应

请对已回滚的事务执行下列操作:

  • 重新创建所有会话资源,其中包括可能已在先前的事务中创建的任何会话资源。
  • 重新发出所有 SQL 语句。

sqlcode:-30108

sqlstate:08506

SQL30109N 无法重新建立连接,因为当前服务器组或备用组中任何数据库服务器的发行版级别与原始服务器的发行版级别不兼容。 新主机名或 IP 地址:主机名。 新服务器名称或端口号:服务名称。 新连接的发行版级别:新的发行版级别。 原始连接的发行版级别:旧的发行版级别。 原因码:原因码

说明

尝试在不属于当前服务器组的数据库服务器上或者在备用组中的数据库服务器上重新建立连接。 原因码指示了具体情况。

1

与数据库服务器的连接失败,并且无法重新建立与组中备用服务器的连接,因为组中任何可用服务器的发行版级别都与初始连接不兼容。 最后连接尝试至的组中备用服务器的发行版级别与原始连接的发行版级别不兼容。

2

与数据库服务器的连接失败,并且无法重新建立与备用服务器组中的服务器的连接,因为备用组中任何可用服务器的发行版级别都与初始连接不兼容。 最后尝试连接至的备用组中服务器的发行版级别与原始组中原始服务器的发行版级别不兼容。

用户响应

与原因码对应的操作如下所示:

1

如果在混合 DB2 for z/OS 数据共享组中发生了故障转移,请手动重新连接至数据库。 如果要故障转移至备用服务器,请验证该备用服务器是否已设置为对该故障转移进行处理。

2

手动重新连接至数据库。

sqlcode:-30109

sqlstate:08507

SQL32765W 来自外部产品的警告或参考消息信息: token-list

说明

与数据库管理器交互但不是数据库产品的一部分的软件产品正在 标记列表 中返回有关警告或参考情况的信息。

用户响应

标记列表 中的信息与为正在返回信息的产品提供的任何文档结合起来了解所报告的情况。

sqlcode:+32765

sqlstate:(有可能返回任何 SQLSTATE)

SQL32766N 来自外部产品的错误消息信息: token-list

说明

与数据库管理器交互但不是数据库产品的一部分的软件产品正在 标记列表 中返回有关错误情况的信息。

用户响应

标记列表 中的信息与为正在返回信息的产品提供的任何文档结合起来确定如何处理此错误情况。

sqlcode:-32766

sqlstate:(有可能返回任何 SQLSTATE)