We recommend that you run with the following values for your //CEEOPTS DD statement for the LE options:
//CEEOPTS DD *
ALL31(ON), STACK(,,ANYWHERE,KEEP,,), HEAP(,,,FREE,,)
Here are the HEAP options for your reference which we have in effect, and we are not getting the PIEHP0002 error:
IBM-supplied default HEAPZONES(0,ABEND,0,ABEND)
Please check if you are using a default for the HEAP() option .. which is HEAP(,,,KEEP,,).
This means that even if you call the free routine to release memory, it isn’t actually freed.
There are a variety of bugs that occur if the memory is really freed. So IBM recommends using the KEEP option to avoid these.