付録L.4 障害事例
過去に多く発生した障害事例を次に示します。
- 〈この項の構成〉
(1) コンパイル時のトラブル
項番 |
現象 |
原因 |
対策 |
---|---|---|---|
1 |
ODBCインタフェース機能で,埋め込みSQLにDB固有の構文(WITH (ROWLOCK,UPDLOCK)指定やSCOPE_IDENTITY()関数など)を記述すると,コンパイル時にKCCC3800C-Sエラーとなりました。 |
埋め込みSQLにDB固有の構文は使用できません。 |
ODBCインタフェース機能では,マニュアル「COBOL2002 言語 拡張仕様編」 「9 データベースアクセス機能」に記載している構文だけが使用できます。次のどちらかの方法で対策してください。
|
2 |
コンパイル時に,算術演算でKCCC4355C-Iエラーとなりました。 |
一つの算術文に複数の算術式を記述したことで中間結果が30けたを超えました。 |
複数記述された算術式は複数の算術文に分割してください。 このとき,データ項目の整数部のけた数,小数部のけた数は,算術式の値を格納できるけた数で定義してください。 |
(2) 実行時のトラブル
項番 |
現象 |
原因 |
対策 |
---|---|---|---|
1 |
CALL文による動的なリンクでの呼び出しでKCCC0003R-Sエラーとなりました。 |
次の原因が考えられます。
|
原因ごとの対策を次に示します。
|
2 |
CALL文による動的なリンクでの呼び出しでKCCC0131R-Sエラーとなりました。 |
ロード対象DLLにリンクされた,ほかのDLLがロードできません。 |
DLLをロードするには,ロード対象DLLにリンクされたすべてのDLLが存在し,かつ,環境変数PATHにこれらのDLLへのパスが指定されていなければなりません。環境変数PATHに,すべての必要なパスが指定されているか確認してください。 ロード対象DLLにリンクされたDLLは次の方法で確認できます。
|
3 |
COBOLプログラムが正常終了したあとの終了コードが0以外になりました。 |
戻り値を持たないプログラムを呼び出しています。 |
COBOLプログラムが正常終了した場合,RETURN-CODE特殊レジスタの値がプログラムの終了コードになります。 プログラム実行中にC言語などで作成された戻り値を持たない(void型)プログラムを呼び出した場合,RETURN-CODE特殊レジスタの値は不定となります。この状態でプログラムを終了すると,プログラムの終了コードは不定となります。 この場合,プログラムを終了する直前に,明示的にRETURN-CODE特殊レジスタの値を設定してください。 |
4 |
COBOLプログラムが終わらないため,タスクマネージャから強制終了したが,原因がわかりませんでした。 |
次の原因が考えられます。
|
実行中の処理を特定し,原因を取り除いてください。 実行中の処理は次の手順で特定できます。
|