DB2® ストアード・プロシージャーは、コンパイルされた高水準言語 (HLL) プログラムで、SQL ステートメントを実行することができます。 Debug Tool は、アセンブラー (プログラム・タイプが MAIN の場合)、C、C++、COBOL、および PL/I で作成されたすべてのストアード・プロシージャーを、以下のすべてのデバッグ・モードでデバッグできます。
作業を始める前に、DB2 ストアード・プロシージャー・プログラムの準備で説明されているすべての作業が完了していることを確認してください。このプログラムは、呼び出し側プログラムとは別アドレス・スペースに存在します。ストアード・プロシージャーは、別のアプリケーションやツール (IBM® DB2 デベロップメント・センターなど) から呼び出すことができます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
ここでは、ユーザーが受け取る可能性があるメッセージと、それらのメッセージに記述されている問題の解決方法について説明します。ここでは、一般的な問題を対象としています。
| エラー・コード | エラー・メッセージ | 解決 |
|---|---|---|
| SQLCODE = 471, SQLERRMC = 00E79001 | ストアード・プロシージャーが停止しました。 | DB2 Start Procedure コマンドを使用して、ストアード・プロシージャーを開始します。 |
| SQLCODE = 471, SQLERRMC = 00E79002 | スケジューリングに問題があるため、ストアード・プロシージャーを開始できませんでした。 | DB2 Start Procedure コマンドを使用して試みます。 解決しない場合は、DB2 管理者に連絡して、そのプロシージャーのディスパッチング優先順位を上げてもらってください。 |
| SQLCODE = 471, SQLERRMC = 00E7900C | WLM アプリケーション環境名が定義されていないか、使用できません。 | MVS WLM VARY コマンドを使用して、WLM アドレス・スペースを活動化します。例えば、次のようにします。
WLM VARY APPLENV=applenv,RESUMEここで、applenv は WLM アドレス・スペースの名前です。 |
| SQLCODE = 444, SQLERRMC (none) | プログラムが見付かりません。 | LOADLIB が、WLM、または DB2 アドレス・スペース JCL の STEPLIB にあること、および他のアプリケーションがそれにアクセスするための、適切な RACF® 読み取り権限を持っていることを確認します。 |
| SQLCODE = 430, SQLERRMC (none) | ストアード・プロシージャーが異常終了しました。 | この現象が起こるには、いろいろな理由が考えられます。 ストアード・プロシージャーが Debug Tool を呼び出すことなく異常終了する場合は、論理エラーがないかプロシージャーを分析してください。Debug Tool を使用しなくてもプロシージャーが正常に実行される場合は、ストアード・プロシージャーをコンパイルおよびリンクする方法に、問題がある可能性があります。プロシージャー・データ・セットに、適切な RACF 権限があることを確認してください。 また、アドレス・スペースに問題がある可能性もあります。WLM または DB2 アドレス・スペースが、正しいことを確認してください。何らかの変更を行った場合は、必ずその領域をリサイクルしてください。 |