01.05.2013 Views

Mainframe Express (MFE) 3 - Micro Focus

Mainframe Express (MFE) 3 - Micro Focus

Mainframe Express (MFE) 3 - Micro Focus

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Mainframe</strong> <strong>Express</strong> (<strong>MFE</strong>) 3.0 CICS Compile - DYNAM versus<br />

NODYNAM<br />

A client has a project using the CICS option with a dialect of OS/390. They<br />

noticed from the listing that all the programs were compiled as NODYNAM.<br />

The desire is to have the ability to compile the non-CICS programs with the<br />

DYNAM option. The desire is also to have a project without CICS and all the<br />

programs in that project be compiled with DYNAM, even though the build<br />

settings for both projects appear to be the same. How can things be<br />

configured in <strong>Mainframe</strong> <strong>Express</strong> (<strong>MFE</strong>) to make some programs be compiled<br />

with DYNAM option?<br />

The simple answer would be to pass DYNAM as an Additional Directive for<br />

that program's Build Settings, but this brings up the question of “what does<br />

DYNAM/NODYNAM do in <strong>Mainframe</strong> <strong>Express</strong> for a CICS project?”. Let<br />

explore what a CALL is under CICS and what <strong>MFE</strong> does.<br />

A CICS call is normally an EXEC CICS LINK or EXEC CICS XCTL. IBM says<br />

this: http://publibz.boulder.ibm.com/cgibin/bookmgr_OS390/BOOKS/DFHP3B01/1.4.4?SHELF=DFHASI01&DT=20050<br />

727090822&CASE. The pertinent part of the discussion provides:<br />

The term run unit is used in Figure 3 in topic 1.4.4.2. A run unit is a<br />

running set of one or more programs that communicate with each<br />

other by COBOL static or dynamic CALL statements. In a CICS<br />

environment, a run unit is entered at the start of a CICS task, or<br />

invoked by a LINK or XCTL command. A run unit can be defined as<br />

the execution of a program defined by a PROGRAM resource definition,<br />

even though for dynamic CALL, the subsequent PROGRAM definition is<br />

needed for the called program. When control is passed by a XCTL<br />

command, the program receiving control cannot return control to the<br />

calling program by a RETURN command or a GOBACK statement, and<br />

is therefore not a subprogram.<br />

However, the DYNAM/NODYNAM compiler option from IBM says that it<br />

determines, in some cases, when a CALL will be dynamic or static. (The<br />

exception is CALL identifier with NODYNAM, which is always a dynamic CALL)<br />

http://publibz.boulder.ibm.com/cgibin/bookmgr_OS390/BOOKS/IGY3PG30/2.4.19?SHELF=IGY3SH30&DT=2005<br />

0628164603<br />

The DYNAM/NODYNAM directive in <strong>MFE</strong> does not mean the same thing as the<br />

IBM compiler option. We document that it determines whether or not a<br />

CANCEL verb is activated. So, since all CALLs in <strong>MFE</strong> are dynamic, because<br />

COBOL programs within <strong>MFE</strong> are never linked, this directive should not be a<br />

problem in your CICS applications.<br />

Reference Knowledge Base Document #21911

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!