On 10/12/2012 6:10 PM, Bill Planer wrote:
As best I recall, the subsystem's init routine LOADed a module into common
and put it's entry point address into a CSA control block.  When the module
was called by an address space during normal execution, the module was no
longer there.  It turned out that the module had been deleted when the init
routine terminated.  Traditional subsystem init runs under master and any
modules loaded by it belong to master.  Subsystem inits that run under
BEGINPARALLEL run under a TCB that terminates with the init routine, so any
module loaded is deleted by task termination.  There is a way to do this
load such that the module won't be deleted at task termination, but I don't
remember the details.  I do remember that it was complicated enough that I
decided that it wasn't worth the effort to fix.

When you specify GLOBAL=YES on the MVS LOAD macro, the module is loaded into CSA. When the TCB ends, the module is automatically deleted by normal EOT cleanup. One way to avoid this standard behavior is to prevent the contents supervisor (CSV) from creating a CDE for the module. You can do this by allocating your own area in CSA and LOADing the module using the ADDR= or ADDR64= keywords. Another option is to use the CSVDYLPA service to dynamically add the module to LPA.

--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
310-338-0400 x318
[email protected]
http://www.phoenixsoftware.com/

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

Reply via email to