16.8.4 AP分割のポイント
COBOL2002では,明示的にCALL文でオープンを要求する場合を除き,一つのコンパイル単位で最初のTRANSCEIVE,SENDが発行されるとXMAP3のオープンが実行されるため,処理が遅くなります。
不要なオープンをしないためには,次の点に注意してください。
-
一つのコンパイル単位に,TRANSCEIVE文,SEND文をまとめる。
-
共通ルーチンにまとめてTRANSCEIVE文,SEND文を発行するようにAPの構造を見直す。
業務の実行ファイル(.EXE)を分割すると,実行ファイル同士で情報を引き継げません。このため,業務は一つの実行ファイルで実現するようにしてください。
また,複数の実行ファイルをメニュー起動する場合は,メニューを表示して業務実行ファイルを呼び出すだけの実行ファイルを用意してください。メニュー起動プログラムから業務を起動したときにメニュー画面が残らないようにするには,メニュー起動プログラムでDISABLE文を発行してから業務プログラムを呼び出してください。
-
AP間でオープンを引き継ぐ環境変数「CBLTERMSHAR=YES」を指定する。
-
CALLインタフェースの場合
「CBLTERMSHAR」は無効になります。このため,AP間のオープンの引き継ぎをする場合は,ユーザがXMAP3インタフェースエリアの情報を引き継ぐようなコーディングをする必要があります。
-
COBOL2002を使用している場合
別のコンパイル単位に制御が移る前にDISABLE文を発行し,1度ウィンドウを閉じるようにしてください。ただし,この場合はクローズ/オープンを繰り返すことになり,画面遷移は遅くなりますので注意してください。
-