PL/I storage classes

When using CICS®, you should avoid altering STATIC storage. Doing so violates reentrancy and can yield unpredictable results. Instead of altering STATIC storage, you should make most or all user variables that are changed while the routine is running AUTOMATIC. Those user variables with initial values that never change should be declared STATIC INITIAL.

Although AUTOMATIC storage provides reentrancy and should suffice for most purposes, you can also allocate and free storage with the ALLOCATE and FREE statements, which you can use to allocate and free BASED and CONTROLLED variables. References you make to BASED storage are handled with the pointer set by the ALLOCATE statement. The pointer itself can be AUTOMATIC.

You can use CONTROLLED storage under CICS, because it is consistent with reentrancy.