DFHSAP

DFHSAP is a PL/I storage management service routine that acquires and releases PL/I storage as a result of PL/I operations such as calling PL/I sub-procedures. In CICS, PL/I GETMAINs/FREEMAINs do not necessarily coincide with CICS GETMAINs/FREEMAINs. To reduce CPU overhead associated with CICS GETMAINs/FREEMAINs, PL/I lets you specify the size of an initial block of storage it will acquire from CICS. You specify this initial with ISASIZE.

DFHSAP is equivalent to module DFHESAP in releases later than 3.2.1.

Hints

The default storage block allocated with ISASIZE will be the same size as the initial control blocks and the PL/I DSA size of the main procedure. You can change the default by including the following statement in your program:

DCL PLIXOPT CHAT (xx) VAR STATIC EXTERNAL INIT ('ISASIZE(nnnn)');

where xx is the required length of the string needed to contain the constant in INIT phrase, and nnnn is a value to override the default ISASIZE.

To calculate the optimum value for ISASIZE while you test the program, include the following statement:

DCL PLIXIPT CHAR (xx) VAR STATIC EXTERNAL INIT ('ISASIZE(nnnn)REPORT')

This sends a report to the transient data queue "CPLI" at the end of each execution of the PL/I program.

Repeat this process for programs you are reviewing for suspected heavy CPU usage. A PL/I program that contains iterative procedures with calls to internal or external PL/I procedures can waste production processor cycles if ISASIZE is not properly tuned.

Reference Sources

CICS Tuning and Performance, Xephon Report, M. Hillson, August 1991.