On Thu, Nov 19, 2015 at 8:52 AM, Leonard.John.J <
johnleon...@westfieldgrp.com> wrote:

> Virtual Storage Manager in z/OS 1.10 HBB7750 which results in different
> behavior when storage is Getmained
> We are trying to understand the ramifications of this change to the
> GETMAIN and I was wondering if anyone else has dealt with this. I have this
> document that says
>
> “References to GETMAIN also apply to STORAGE OBTAIN.
>
> The description and behavior of the GETMAIN macro as documented
> in the z/OS MVS Assembler Services Reference remain unchanged
> by this APAR.  With respect to whether or not the system zeroes
> the newly getmained storage, the guidelines remain as follows:
>
> When you obtain storage, the system clears the requested storage
> to zeros if you obtain either:
>  o 8192 bytes or more from a pageable, private storage subpool.
>  o 4096 bytes or more from a pageable, private storage subpool,
>    with BNDRY=PAGE specified
>
> In all other cases you must NOT assume that the storage is
> cleared to zeros, unless indicated by the return code when
> CHECKZERO=YES is specified.”
>
> The way I read this is getmained storage may not be initialized in all
> cases.
>
> What if I do a CICS GETMAIN and specify INITIMG(BLANK)
>
> Even if I figure out what to do with every GETMAIN what do I do about
> vendor code I don’t have the source so I can’t tell if the code assumes the
> storage is initialized or not
>


​EXEC CICS GETMAIN functionality is not affected by the z/OS GETMAIN​
function. They are totally separate and distinct. EXEC CICS GETMAIN simply
looks in the appropriate CICS DSA (Dynamic Storage Area) for "free space".
There are a number of different DSAs in CICS. They are "suballocated" from
a single z/OS area which is initialized at CICS start up. CICS itself,
internally, manages the suballocation. Therefore, the CICS DSA storage is
always allocated from a z/OS perspective, regardless of whether it is
"allocated" or "free" from a CICS perspective. When you use the INITIMG()
parameter on an EXEC CICS GETMAIN, then the CICS memory manager (not z/OS
memory manager) will perform the requested initialization.

From:
http://www-01.ibm.com/support/knowledgecenter/SSGMCP_5.1.0/com.ibm.cics.ts.applicationprogramming.doc/commands/dfhp4_getmain.html
<quote>
INITIMG(data-value)Specifies an optional 1-byte initialization value. If
you specify INITIMG, CICS sets every byte of the acquired storage to the
bit string you provide. Otherwise, CICS does not initialize the storage. In
COBOL programs only, you must use a data area rather than a data value to
define the initialization bit string.
</quote>

So, if your application does not use the INITIMG() parameter, the data in
storage is "undetermined". That is, whatever happened to be in the area
from whatever used it last. The same with vendor code. If they don't use
INITIMG(), then "who knows?".

However, also keep in mind the CEECOPT settings for LE.
http://www-01.ibm.com/support/knowledgecenter/SSGMCP_5.1.0/com.ibm.cics.ts.applicationprogramming.doc/topics/dfhp3_langenv_runopts.html?lang=en
which affects things like COBOL LOCAL and WORKING storages.




>
> John J. Leonard
> Application Developer III SOA Team
> Westfield Group
> One Park Circle P.O. Box 5001
> Westfield Center Ohio 44251-5001
> Office (330) 887-8249
> Toll Free 1-(800) 243-0210 ext 4308249
> Email johnleon...@westfieldgrp.com
> Extension 430-8249
>

-- 

Schrodinger's backup: The condition of any backup is unknown until a
restore is attempted.

Yoda of Borg, we are. Futile, resistance is, yes. Assimilated, you will be.

He's about as useful as a wax frying pan.

10 to the 12th power microphones = 1 Megaphone

Maranatha! <><
John McKown

Reply via email to