Callable module considerations

FABEUR6, FABEUR7, FABGXDR utilities are distributed with AMODE ANY and RMODE ANY attributes.

This distribution with attributes is done to prevent a residency mode change to the calling program when the callable module is link-edited into the caller (which can happen if the calling program can reside above the 16-Mb line).

Related topic
Problems can arise if the callable modules are not link-edited into the calling program, but invoked via an ATTACH or LINK, or DYNAMIC CALLS (some high-level languages can do any or all of these).

If any of the callable modules are not link-edited into the calling program, these modules should be link-edited with the attributes of AMODE 24 and RMODE 24. This can be accomplished by executing the JCL shown in the following figure, which also can be found in the Fast Path/EP sample library member name #LKEDCAL on the product distribution tape.

Example

//#LKEDCAL JOB ETC...
//*
//***********************************************************************/*
//** JCL TO LINK-EDIT CALLABLE MODULES AS AMODE/RMODE 24 /*
//***********************************************************************/*
//*
//LKED1      EXEC PGM=IEWL,REGION=0M,
//    PARM='SIZE=(300K,72K),LIST,MAP,XREF,AMODE=24,RMODE=24'
//SYSPRINT   DD SYSOUT=*
//SYSUT1     DD UNIT=WORK,SPACE=(CYL,(1,1))
//SYSLIB     DD DSN=BMC.PFP.LOAD,DISP=SHR
//SYSLMOD    DD DSN=
your dataset name,DISP=SHR
//SYSLIN DD *,DCB=BLKSIZE=80
  INCLUDE SYSLIB(FABEUR6)
   ENTRY FABEUR6
   NAME FABEUR6(R)
  INCLUDE SYSLIB(FABEUR7)
   ENTRY FABEUR7
   NAME FABEUR7(R)
 INCLUDE SYSLIB(FABGXDR)
 ENTRY FABGXDR
 NAME FABGXDR(R)
/*
Was this page helpful? Yes No Submitting... Thank you

Comments