Problem:
I have a project using the CICS option with a dialect of OS/390. I noticed from the listing all the programs were compiled as NODYNAM. What I want is to have the ability to compile the non-CICS programs with the DYNAM option. I also have a project without CICS and all the programs in it are compiled as DYNAM even though the build settings for both projects appear to be the same. How do I make some programs compiled with DYNAM option?
Resolution:
You would pass DYNAM as an Additional Directive for that program's Build Settings,
but this brings up the question of 'what does DYNAM/NODYNAM do in Mainframe Express for a CICS project?'.
Let explore what a CALL is under CICS and what MFE does. A CICS call is normally an EXEC CICS LINK or EXEC CICS XCTL. Since IBM says this:
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/DFHP3B01/1.4.4?SHELF=DFHASI01&DT=20050727090822&CASE=
The term run unit is used in Figure 3 in topic 1.4.4.2. A run unit is a running set
of one or more programs that communicate with each other by COBOL
static or dynamic CALL statements. In a CICS environment, a run unit is entered
at the start of a CICS task, or invoked by a LINK or XCTL command.
A run unit can be defined as the execution of a program defined by a PROGRAM
resource definition, even though for dynamic CALL, the subsequent
PROGRAM definition is needed for the called program. When control is passed
by a XCTL command, the program receiving control cannot return
control to the calling program by a RETURN command or a GOBACK statement,
and is therefore not a subprogram.
But the DYNAM/NODYNAM compiler option from IBM says that it determines, in some cases, when a CALL will be dynamic or static. (exception is CALL identifier with NODYNAM which is always a dynamic CALL)
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IGY3PG30/2.4.19?SHELF=IGY3SH30&DT=20050628164603
The DYNAM/NODYNAM directive in MFE does not mean the same thing as the IBM compiler option. We document that it determines whether or not a CANCEL verb is activated.
So since all CALLs in MFE are dynamic, because Cobol programs are never linked, this directive should not be a problem in your CICS applications.
#MFDS
#EnterpriseDeveloper