-30000   EXECUTION FAILED DUE TO A DISTRIBUTION PROTOCOL ERROR THAT WILL NOT AFFECT THE SUCCESSFUL EXECUTION OF SUBSEQUENT COMMANDS OR SQL STATEMENTS: REASON reason-code (sub-code)

説明

現行の SQL ステートメントの正常な実行を妨げる DRDA プロトコル・エラーが発生しました。 このエラーは、その後の SQL ステートメントの正常な実行を妨げるものではありません。

システムの処置

このステートメントを処理することはできません。 SQLCA はフォーマット設定されました。追加の診断情報を含む可能性のあるメッセージ DSNL031I または DSNL032I が、 MVS™ コンソールに出されている場合があります。

プログラマーの応答

DBA に連絡し、この SQLCODE が出される原因となった SQL ステートメントの分析を要求してください。

問題判別

「reason-code」は、SQL ステートメントの実行の試みに対する応答として リモート・サーバーから受け取った DDM 応答メッセージを表す DDM コード・ポイントを識別しています。 これらは、 リモート・サーバーで検出された内部エラー、またはおそらくローカル Db2® 機能によって 検出された内部エラーを表します。

「reason-code」値は、このエラーを表す DDM 応答メッセージの 2 バイトの 16 進コード・ポイントで、 次のいずれかです。
  • X'1254' - CMDCHKRM
  • X'220A' - DSCINVRM
  • X'220E' - DTAMCHRM
  • X'1245' - PRCCNVRM
  • X'2202' - QRYNOPRM
  • X'220F' - QRYPOPRM
  • X'2207' - RDBACCRM
  • X'2204' - RDBNACRM
  • X'124C' - SYNTAXRM

「reason-codes」の X'220A' (DSCINVRM)、X'1245' (PRCCNVRM)、および X'124C' (SYNTAXRM) には、2 バイトの「sub-code」が伴います。それ以外の場合、「sub-code」はゼロです。

「sub-code」は、ゼロでないときは 2 バイトからなり、 その高位バイトはエラーが検出された場所を示します。 エラーがローカル Db2 によって検出された場合は X'01' で、 エラーがリモート・サーバーによって検出された場合は X'02' です。 下位バイトは、次のように、「reason-code」によって異なります。
  • 'reason-code' = X'220A' (DSCINVRM) の場合は、記述エラー・コード (DSCERRCD) です。
  • 'reason-code' = X'124C' (SYNTAXRM) の場合は、構文エラー・コード (SYNERRCD) です。
  • 'reason-code' = X'1245' (PRCCNVRM) の場合は、会話型プロトコル・エラー・コード (PRCCVNCD) です。

DDM 用語の DSCERRCD、SYNERRCD、および PRCCNVCD のセマンティクスの詳細については、「Open Group Technical Standard, DRDA Version 3 Vol. 3: Distributed Data Management Architecture」を参照してください。

SQLSTATE

58008