Troubleshooting
Problem
COBOL V5 introduced a new concept, a deferred segment, which is not immediately loaded when a module is loaded. This will cause unpredictable behavior because with CMOD it's possible for a separate address space to try to load a deferred segment it does not have addressability to. For example: (1) When module ODSXUPDZ is built with the COBOL 5.1 compiler, it has a deferred segment. (2) SETPROG EXIT,ADD,EXITNAME=exit,mod=ODSXUPDZ,DSNAME=loadib results in a directed load from the address space (ASID X) processing the command. The creates a LFMD in ASID X that represents the loaded module. (3) When CMOD invokes the exit via a CSVDYNEX CALL in another address space (ASID Y), CEEPPOS tries to load the deferred segment of the module for using that LFMD. As that LFMD resides in ASID X private storage, it cannot be accessed from ASID Y. When the module is loaded from LPA, the LFMD is built in common storage that can be accessed from any ASID and allows it to work.
Symptom
S0C4 has been observed thus far, though the results are unpredictable.
Cause
New functionality exposes addressability issue.
Environment
z/OS, COBOL V5, Content Manager OnDemand for z/OS
Diagnosing The Problem
Place the exit into LPA and test.
Resolving The Problem
Place the exit into LPA.
Related Information
Was this topic helpful?
Document Information
Modified date:
18 June 2019
UID
swg21972988