ここでは、アダプタクラスを使用したプログラムの実行時に出力するメッセージの内容および対処方法について説明します。
実行時のメッセージは、COBOLのUPON SYSERR指定のDISPLAY文と同じ出力先に出力されます。UPON SYSERR指定のDISPLAY文の出力先については、以下を参照してください。
[Solaris][Solaris64][LinuxIPF]
“NetCOBOL 使用手引書”
[Linux64]
“NetCOBOL ユーザーズガイド”
アダプタクラスはメッセージを出力すると同時に例外オブジェクトを発生させます。アプリケーションで例外処理を記述しているなどの理由で実行時のメッセージを抑止したい場合は、環境変数COBJNI_NOMESSAGEに“YES”を設定することで、抑止することができます。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“3.2.1.12 エラー処理”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド” の“3.2.1.12 エラー処理”
メッセージの形式
クラス名情報 : メッセージ本文
内容
クラス名情報、エラーが発生したアダプタクラスを示します。クラス名情報の形式は、アダプタクラスの種別によって異なります。
アダプタクラス種別 | 形式 | 補足 | |
---|---|---|---|
クラス/インタフェース | パッケージ名/…/クラス名 | パッケージ名で完全修飾したクラス名です。パッケージ名、クラス名の間は “/”で区切ります。 | |
基本データ型の配列 | boolean | [Z | “[”の数は次元数を表します。たとえば2次元の配列の場合は“[[Z”になります。 |
byte | [B | “[”の数は次元数を表します。 | |
char | [C | “[”の数は次元数を表します。 | |
short | [S | “[”の数は次元数を表します。 | |
int | [I | “[”の数は次元数を表します。 | |
long | [J | “[”の数は次元数を表します。 | |
float | [F | “[”の数は次元数を表します。 | |
double | [D | “[”の数は次元数を表します。 | |
クラス/インタフェースの配列 | [Lパッケージ名/…/クラス名; | “[”の数は次元数を表します。パッケージ名で完全修飾したクラス名を、“L”と“;”ではさみます。 |
対処
JDKまたはJREの環境に誤りがあります。環境変数PATH、LD_LIBRARY_PATHおよびCOBJNI_CLASSPATHが正しいか、JDKまたはJREのインストールが正しく行われているか、確認してください。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“5.3.1 JVN-INITメソッド”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド”の“5.3.1 JVN-INITメソッド”
または、同一プロセス内の異なるスレッドで、JVM-INITメソッドが複数回呼び出されました。JVM-INITメソッドの替わりにJVM-ATTACHメソッドを使用してください。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“5.3.3 JVM-ATTACHメソッド”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド”の“5.3.3 JVM-ATTACHメソッド”
対処
プログラムでJVM-INITメソッドまたはJVM-ATTACHメソッドを正しく呼び出しているか確認してください。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“5.3.1 JVN-INITメソッド”および“5.3.3 JVM-ATTACHメソッド”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド”の“5.3.1 JVN-INITメソッド”および“5.3.3 JVM-ATTACHメソッド”
対処
プログラムでJVM-TERMINATEメソッドまたはJVM-DETACHメソッドを正しく呼び出しているか確認してください。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“5.3.2 JVN-TERMINATEメソッド”および“5.3.4 JVM-DETACHメソッド”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド”の“5.3.2 JVN-TERMINATEメソッド”および“5.3.4 JVM-DETACHメソッド”
対処
Jアダプタクラスジェネレータの障害です。資料を採取して技術員(SE)に連絡してください。
対処
Javaのクラス/インタフェース定義に誤りがあります。Javaのクラス/インタフェースを見直してください。
対処
検索パス上で、Javaクラス/インタフェースが見つかりません。環境変数COBJNI_CLASSPATHの値が正しいか確認してください。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“5.3.1 JVN-INITメソッド”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド”の“5.3.1 JVN-INITメソッド”
対処
Java VMでメモリ不足が発生しました。環境変数(COBJNI_MAX_NSTACK、COBJNI_JAVA_STACK、COBJNI_MIN_HEAP、COBJNI_MAX_HEAP)の値を変更して、Java VMに割り当てるメモリを増やしてください。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“5.3.1 JVN-INITメソッド”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド”の“5.3.1 JVN-INITメソッド”
対処
抽象クラス上でコンストラクタを実行しました。アダプタクラス生成後にJavaクラス/インタフェースを変更した可能性があります。Javaのクラス/インタフェースを見直してください。
対処
パラメタに指定したオブジェクトが、そのクラスまたはサブクラスのオブジェクトではありません。J-NARROWメソッドのパラメタを確認してください。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“5.2.1 J-NARROWメソッド”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド”の“5.2.1 J-NARROWメソッド”
対処
アダプタクラス生成後にJavaクラス/インタフェースを変更した可能性があります。Javaのクラス/インタフェースを見直してください。
対処
Jアダプタクラスジェネレータの障害です。資料を採取して技術員(SE)に連絡してください。
対処
アダプタクラス生成後にJavaクラス/インタフェースを変更した可能性があります。Javaのクラス/インタフェースを見直してください。
対処
Jアダプタクラスジェネレータの障害です。資料を採取して技術員(SE)に連絡してください。
対処
添字の値が 0 ~(要素数-1)の範囲にありません。正しい添字を指定してください。
対処
配列要素に、誤ったクラスのオブジェクトを設定しようとしました。正しいクラスのオブジェクトを設定してください。設定できるのは、配列要素クラスのオブジェクトまたはそのサブクラスのオブジェクトです。
参照
[Solaris][Solaris64][LinuxIPF]
“Jアダプタクラスジェネレータ 使用手引書”の“5.7.1 配列クラス”
[Linux64]
“Jアダプタクラスジェネレータ ユーザーズガイド”の“5.7.1 配列クラス”
対処
Jアダプタクラスジェネレータの障害です。資料を採取して技術員(SE)に連絡してください。
対処
Java VMが実行時エラーを検出しました。例外名および補足情報からエラーの原因を特定し、原因を取り除いてください。
対処
Jアダプタクラスジェネレータの障害です。資料を採取して技術員(SE)に連絡してください。
対処
アダプタクラスのjava-lang-Stringクラスのメソッド(GET-STRING-X、GET-STRING-N、NEW-STRING-XまたはNEW-STRING-N)を使用したプログラム中で、データ項目のエンコード方式で文字として保証されている範囲外のデータが使用されました。
メッセージに表示されたエラー詳細値を“表6.1 文字コードの変換に失敗した場合のエラー詳細値”の説明を参考にエラーの原因を取り除いて、再度実行してください。
エラー詳細値 | エラーの意味 | 対処 |
---|---|---|
7 | 変換先コード列格納域が不足しました。 | 変換先のデータ項目の長さが十分であるか確認してください。 |
12 | 領域不足が発生しました。 | “付録B 注意事項”の“COBOLプログラムの実行時に仮想メモリ不足が発生する場合”を参照して対処してください。 |
22 | 変換元コード列の終りに、不完全なコードが現れました。 | 変換元の文字データが転記、部分参照などで不完全な状態になっていないか確認してください。 |
84 | 変換元コード列中に、変換元コード系に存在しないコードが現れました。 | 変換元のデータがエンコード方式の範囲外です。エンコード方式の異なるデータ項目を重ね合わせ(REDEFIENS句)で使用していないか、文字コード以外のバイナリデータを格納していないか確認してください。 |
-1 | Java VMの初期化が正しく行われていません。 (Java VMの初期化が行なわれてない場合は、アプリケーションエラーが発生します。) | JVM-INITメソッドまたはJVM-ATTACHメソッドを呼び出しているか確認してください。 |
コード変換にInterstage Charset Managerを使用している場合は、「Interstage Charset Manager 使用手引書 標準コード変換機能編」を参照してエラーの原因を確認してください。
上記以外のエラー詳細値については、manマニュアルの“intro(2)”の説明を参照してください。
参照
“NetCOBOL ユーザーズガイド”の“A.2.8 CONVCHAR”
“NetCOBOL ユーザーズガイド”の“C.1.13 CBR_CONVERT_CHARACTER”