-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