-30000 由于分发协议错误,执行失败,但不会影响后续命令或SQL语句的成功执行:原因 原因代码(子代码)
说明
DRDA协议出现错误,导致当前SQL语句无法成功执行。 该错误不会阻止进一步的 SQL 语句的成功执行。
系统操作
无法处理该语句。 格式化 SQLCA。 系统可能会向 MVS 控制台输出 DSNL031I 或 DSNL032I 消息,这些消息可能包含额外的诊断信息。
程序员响应
通知数据库管理员,请求协助分析产生此SQLCODE的SQL语句。
问题确定
“原因代码”识别DDM代码点,该代码点代表从远程服务器收到的DDM响应消息,以响应执行SQL语句的尝试。 这些错误代表远程服务器或本地 Db2 功能检测到的内部错误。
“原因代码”值是DDM回复消息中用于表示错误的两位十六进制代码点,有以下几种:
- X'1254' - 命令检查码
- X'220A' - DSCINVRM
- X'220E' - DTAMCHRM
- X'1245' - 公共关系协调中心网络资源管理
- X'2202' - QRYNOPRM
- X'220F' - QRYPOPRM
- X'2207' - RDBACCRM
- X'2204' - RDBNACRM
- X'124C' - 语法重构
一个双字节的“子代码”与“原因代码” X'220A' (DSCINVRM )、X'1245' (PRCCNVRM)和 X'124C' (语法错误)。 在其他情况下,“子代码”为零。
非零的“子代码”由两个字节组成,其中高位字节指示检测到错误的站点。 如果错误是由本地 Db2 检测到的,则为 X'01';如果错误是由远程服务器检测到的,则为 X'02'。 低阶字节取决于“原因代码”,具体如下:
- 描述 错误代码(DSCERRCD)如果“原因代码”= X'220A' (DSCINVRM)。
- 语法错误代码(SYNERRCD),如果“原因代码”= X'124C' 语法错误代码(SYNERRCD)。
- 对话协议错误代码(PRCCVNCD),如果“原因代码”= X'1245' (PRCCNVRM)。
有关DDM术语DSCERRCD、SYNERRCD和PRCCNVCD语义的详细讨论,请参阅 DRDA第3卷《分布式 Data Management 架构》(开放集团图书馆—— Data Management 标准 )。
SQLSTATE
58008