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)