Hitachi

COBOL2002 使用の手引 手引編


26.6.1 COBOL以外のプログラムからの呼び出しによる方法

COBOLプログラム以外のプログラムを入り口としてスレッドを開始して,そのプログラムから間接的にマルチスレッド対応COBOLプログラムを呼び出せます。

この方法では,スレッド内で最初に呼ばれるCOBOLプログラムが,COBOL主プログラムの場合と,COBOL副プログラムの場合とで,プログラム終了時の動作が異なります。COBOL主プログラムと副プログラムについては,「18.3 COBOL主プログラムと副プログラム」を参照してください。

〈この項の構成〉

(1) COBOL主プログラムの場合

-MainNotCBLオプションを指定しないでコンパイルしたプログラムがスレッド内で最初に実行された場合,COBOL主プログラムになります。

COBOL主プログラムを終了させるには,STOP RUN文を実行します。これによって,COBOL実行環境が終了し,スレッドが終了されます。このとき,RETURN-CODE特殊レジスタの値がスレッドの終了コードになります。

(2) COBOL副プログラムの場合

-MainNotCBLオプションを指定してコンパイルしたプログラムは,スレッド内で最初に実行した場合でも,常にCOBOL副プログラムとなります。

COBOL副プログラムは,呼び出し元のプログラムに復帰できます。このとき,COBOL実行環境は保持されます。そのため,呼び出し元のプログラムは,スレッドが終了する前にCOBOL実行環境を終了させる必要があります。COBOL実行環境を終了させるには,CBLENDサービスルーチンを呼び出します。

図26‒1 COBOL以外のプログラムからの呼び出しの例

[図データ]