DFHSAP
DFHSAPは、PL/Iサブプロシージャーの呼び出しなどのPL/I操作の結果、PL/I記憶域を獲得したり解放したりする、PL/I記憶管理サービス ルーチンです。CICSでは、PL/IのGETMAIN、FREEMAINは、CICSのGETMAIN、FREEMAINと必ずしも一致しません。CICSのGETMAIN、FREEMAINに関連付けられたCPUのオーバーヘッドを軽減するため、PL/Iを使用してCICSから取得する初期記憶ブロックのサイズを指定します。この初期値はISASIZEで指定します。
DFHSAPは、3.2.1以上のバージョンではDFHESAPモジュールに相当します。
ヒント
ISASIZEで割り振られたデフォルトの記憶ブロックは、初期制御ブロックと同じサイズで、メイン プロシージャーのPL/I DSAとも同じサイズです。プログラムに以下のステートメントを記述することで、デフォルト値を変更できます。
DCL PLIXOPT CHAT (xx) VAR STATIC EXTERNAL INIT ('ISASIZE(nnnn)')
xxはINIT句に定数を含めるために必要なストリング長で、nnnnはデフォルトのISASIZEを上書きする値です。
プログラムをテストしながらISASIZEの最適値を計算するには、以下のステートメントを使用します。
DCL PLIXIPT CHAR (xx) VAR STATIC EXTERNAL INIT ('ISASIZE(nnnn)REPORT')
このステートメントは、PL/Iプログラムの実行が終了するたびに、一時データ待ち行列CPLIにレポートを送ります。
CPUを大量に使用している可能性のあるプログラムで、この処理を繰り返します。PL/Iプログラムに、内部または外部PL/Iプロシージャーへの呼び出しを伴う反復プロシージャーが含まれる場合、ISASIZEが正しく調整されていないと、実行環境でCPUが無駄になることがあります。
参考資料
『CICS Tuning and Performance』(Xephon Report, M. Hillson, August 1991)