34.3.8 拡張機能

<この項の構成>
(1) CBLCGIERR(HP-UX(IPF),AIX(32),Solaris(SPARC)で有効)
(2) CBLCGIINITSIZE(HP-UX(IPF),AIX(32),Solaris(SPARC)で有効)
(3) CBLMTEND
(4) CBLNO_LIBFREE

(1) CBLCGIERR(HP-UX(IPF),AIX(32),Solaris(SPARC)で有効)

CGIプログラムで実行時エラーが発生したとき,メッセージの先頭にCGIヘッダ(HTTPヘッダのMIMEフォーマットを表す"Content-type: text/plain¥n¥n")を付けて出力したい場合に指定します。

詳細は,「24.9 実行時エラーメッセージの取得方法」を参照してください。

(2) CBLCGIINITSIZE(HP-UX(IPF),AIX(32),Solaris(SPARC)で有効)

CBLCGIINITサービスルーチンが受け取るフォーム情報で,「名前」「値」のデコードされていない状態での最大文字列長をキロバイト単位で指定します。指定できる値の範囲は,1~2,000,000です。この範囲外の値を指定した場合,または環境変数CBLCGIINITSIZEを指定しなかった場合は,64が仮定されます。

詳細は,「24.7.2 サービスルーチンの説明」の「(7) CBLCGIINIT」を参照してください。

(3) CBLMTEND

マルチスレッド対応COBOLプログラムで,実行時エラーが発生したときのスレッドの終了方法を変更できます。環境変数CBLMTENDを指定しない場合,COBOLはpthread_exit関数を発行してそのスレッドを終了します。

例えば,マルチスレッド対応COBOLプログラムで実行時エラーが発生し,スレッドの終了ではなくプロセスが終了しなければならない製品と連携している場合は,環境変数CBLMTEND = ABORTを指定することで,実行時エラーが発生したときのスレッドの終了方法を変更できます。

また,ABORTを指定した場合に,マルチスレッド対応COBOLプログラムでCOBOL実行時エラーが発生したとき,または-DebugInf,-DebugInf,Trace,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRangeオプションのどれかを指定したプログラムが異常終了したときに,abort関数を発行します。

注意事項
  • STOP RUN文実行時は,環境変数CBLMTENDの指定がないときと同様に,pthread_exit関数を発行して,そのスレッドを終了させます。
  • abort関数が発行された場合,そのabortシグナルを補足するプログラムがないかぎり,システムがプロセスを終了するため,ほかの実行中のスレッドも強制的に終了します。
  • 環境変数CBLMTENDは,スレッド単位での指定はできません。プログラム実行の前に指定してください。

(4) CBLNO_LIBFREE

環境変数CBLNO_LIBFREEにEXITを指定した場合,COBOLプログラムの終了処理でCOBOLが動的なリンクでロードしたCOBOL実行時ライブラリをアンロードしません。環境変数CBLNO_LIBFREEを省略した場合,またはEXIT以外が指定された場合は適用されません。詳細については,「18.6 共用ライブラリに含まれるプログラムの呼び出しと共用ライブラリのアンロード」を参照してください。