From fading memory, so things might have change slightly, but I think most of 
this still applies.


The REGION and MEMLIMIT values that apply to z/OS UNIX processes depend on how 
and where the process is running:


a) BATCH jobs, started tasks, TSO user sessions
A program run as batch job, started task, or in a TSO session gets its REGION 
and MEMLIMIT via JCL, which may be changed by IEFUSI (and IEFLIMIT). When this 
program makes use of z/OS UNIX services, it will become dubbed, i.e. it becomes 
a UINX process. It still runs in the same address space. Nothing changes with 
respect to REGION or MEMLIMT.


When this process spawn()s (non-local spawn) or fork()s a new process, that new 
process will be in a BPXAS address space. REGION and MEMLIMT will be inherited 
from the originating batch job address space. None of the z/OS UNIX settings 
apply. 


IEFUSI will gin control in the BPXAS address space before the UNIX process gets 
control. OMVS set REGION to the magic value 54M. This has not meaning and will 
later be replaced by the values from the originating batch job. (I don‘t know 
why 54M was chosen as the indicator value.)


b) If a z/OS UNIX process is a daemon, such as FTPD, otelnetd, etc. which 
listens for incoming session calls, then authenticates the new user, and 
spawn()s / fork()s a new process for this new user, then REGION and MEMLIMIT 
will be set from the z/OS UNIX parameters (ASSIZEMAX/MAXASSIZE, etc). It is not 
useful to inherit those values from the parent process in these cases. The 
parent is the server, the childs are the unser sessions. They serve different 
means.


So, your IEFUSI should not touch the REGION and MEMLIMIT field when it is 
called for OMVS address spaces (see flags as described in the IEFUSI 
description). And, for the putty sessions, the MAXASSIZE or ASSIZEMAX value 
should apply. Try to run Mark Zelden‘s REXXSTOR in a TSO session, after TSO 
OMVS, and in a putty session to see the differences


From the „z/OS MVs Installation Exits“ manual:
Additional Considerations for z/OS UNIX Applications: 
When running z/OS UNIX applications you need to consider that fork and spawn 
are issued to create new address spaces. The default processing on fork and 
spawn is for the z/OS UNIX kernel to propagate the region size from the parent 
to the child. Because the region size in the parent process has already passed 
through IEFUSI and has an approved region size, IBM recommends that you bypass 
normal IEFUSI processing when the subsystem (Word 8) is OMVS.


At the time of IEFUSI processing, the kernel has not yet propagated the 
parent's region size to the child, so IEFUSI has nothing to work with. If 
IEFUSI modifies the region size of the child process, the kernel will honor 
that region size and not propagate the region size from parent to child. This 
can result in failure of a fork if the region size is insufficient in the child 
to capture the parent's storage.

 
 -- 
Peter Hunkeler 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to