-30020 EXECUTION FAILED DUE TO A DISTRIBUTION PROTOCOL ERROR THAT CAUSED DEALLOCATION OF THE CONVERSATION: REASON reason-code (sub-code)
説明
現行の SQL ステートメントまたはコマンドの実行だけでなく、 その後の SQL ステートメントの正常な実行も妨げるような DRDA プロトコル・エラーが発生しました。
「reason-code」は、SQL ステートメントの実行の試みに対する応答として リモート・サーバーから受け取った DDM 応答メッセージを表す DDM コード・ポイントを識別しています。 これらは、 リモート・サーバー・サイトで検出された内部エラー、またはおそらくローカル Db2® 機能によって 検出された内部エラーを表します。
「reason-code」値は、このエラーを表す DDM 応答メッセージの 2 バイトの 16 進コード・ポイントで、
次のいずれかです。
- X'1232' - AGNPRMRM
- X'1254' - CMDCHKRM
- X'220A' - DSCINVRM
- X'220E' - DTAMCHRM
- X'0010' - FDODSC
- X'1218' - MGRDEPRM
- X'1245' - PRCCNVRM
- X'241A' - QRYDSC
- X'2202' - QRYNOPRM
- X'220F' - QRYPOPRM
- X'2207' - RDBACCRM
- X'2204' - RDBNACRM
- X'124C' - SYNTAXRM
「reason-code」に伴って、2 バイトのサブコード (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) です。
- reason code = X' 1218' (MGRDEPRM) の場合は、管理プログラム依存エラー・コード (DEPERRCD) です。
DDM 用語の DSCERRCD、SYNERRCD、PRCCNVCD、および DEPERRCD のセマンティクスの詳細については、「Open Group Technical Standard, DRDA Version 3 Vol. 3: Distributed Data Management Architecture」を参照してください。
システムの処置
このステートメントを処理することはできません。 SQLCA はフォーマット設定され、エラーが検出された会話は割り振り解除されます。追加の診断情報を含む可能性のあるメッセージ DSNL031I または DSNL032I が、 MVS™ コンソールに出されている場合があります。
プログラマーの応答
サーバーとの接続は壊されており、このため、サーバーはこの作業単位をロールバックしています。 この場合、正常に実行できる SQL ステートメントは、ROLLBACK だけです。 しかし、リクエスターが COMMIT でこのエラーを検出した場合は、 作業単位がサーバーでコミットされているかロールバックされているかは不明です。
SQLSTATE
58009