COBOL2002 Javaプログラム呼び出し機能ガイド
プログラム作成支援ツールの注意事項について説明します。
Javaクラス利用サンプルではJavaプログラム呼び出し機能の初期化,終了処理,およびCBLJENV集団項目をプログラム単位に生成しますが,実際の処理ではスレッド単位で一度だけ実行・定義するように構成してください。
フィールドやパラメタの型がStringクラスの場合,COBOLデータ項目の定義は-StrMaxLenオプションに指定した長さの英数字項目で生成されます。必要に応じて,取り扱うデータにあわせて変更してください。対応する長さ領域も変更する必要があるため,注意が必要です。
プログラム作成支援ツールが生成するCOBOLプログラムはccblコマンドまたは-Compati85オプションを指定したccbl2002コマンドでコンパイルしないでください。
プログラム生成ツールはCOBOL2002規格に従ってCOBOLプログラムを生成します。そのため,プログラム名の長さなどがCOBOL85規格に沿わない形式で出力され,上記の方法でコンパイルした場合にエラーとなるときがあります。
COBOLプログラムのコンパイルエラーの原因の一つとして,プログラム作成支援ツールが生成するCOBOLプログラムのデータ項目名が重複していることが考えられます。この場合,名前が重複しないようにデータ項目名を変更する必要があります。
例えば,次に示すようにプログラム作成支援ツールが生成するCOBOLプログラムのデータ項目名がJavaのフィールド名と同じ場合,データ項目名が重複します。Javaのクラス名やメソッド名でも同様です。
なお,コンパイル時に,大文字・小文字の区別や全角・半角の区別をするかどうかはコンパイラオプションに依存します。
集団項目データ交換プログラムは,インスタンス(オブジェクト参照)を取得する処理に引数なしでCBLJNEWサービスルーチンを呼び出すコードを生成します。このため,集団項目データ交換プログラムに渡すJavaオブジェクト参照に呼び出し元で生成したインスタンスのオブジェクト参照を設定しないで呼び出したとき,引数があるpublicコンストラクタでインスタンスを取得できません。引数があるpublicコンストラクタでインスタンスを取得したい場合,次のどちらかの対処をしてください。
ほかのpublicコンストラクタを呼び出すためのCOBOLプログラムは,Javaクラス利用サンプルを生成して参考にしてください。
プログラム作成支援ツールで生成したプログラムを変更しないで,次のどれかのコンパイラオプションを指定してコンパイルすると,実行時にCOBOL実行時エラーなどの不正な動作となることがあります。
これらのコンパイラオプションを指定しないか,または生成したプログラムを変更して使用してください。使用方法を次に示します。
All Rights Reserved. Copyright (C) 2014, 2016, Hitachi, Ltd.