A new feature has been added to Rational COBOL Runtime For z/VSE that can improve the efficiency of your running code. EGL Wrappers wrap around a non-EGL main program and handle the initialisation and destruction of the Runtime. This means that every time your non-EGL main program calls an EGL subprogram, the Runtime will not be reinitialised and destroyed again. It will only be initialised once, when the main program starts and destroyed when the main program ends.
Use of this feature requires PTF UI42496 to be applied to the Rational COBOL Runtime For z/VSE
To use this new feature, you simply re-link your non-EGL main program with the wrapper program ELAWBAT and it's dependency ELAWREGA. The source code for ELAWBAT (COBOL) and ELAWREGA (Assembler) is included with the Runtime. In the source code for both programs substitute NONVGRTN with the name of your non-EGL main program and recompile both programs. Then, use the following linkage to create the PHASE for your main program (where NONVGRTN is the name of your non-EGL main program)
// LIBDEF PHASE,CATALOG=MYLIB
PHASE NONVGRTN,*
INCLUDE NONVGRTN
INCLUDE ELAWBAT
INCLUDE ELAWREGA
INCLUDE ELARSINV
INCLUDE ELARSVCS
INCLUDE ELAASSGN
INCLUDE ELAASADR
ENTRY ELAWBAT
// EXEC LNKEDT,SIZE=512K,PARM='AMODE=31,RMODE=ANY'
/*
Alternatively, you can use the compiled versions of ELAWBAT and ELAWREGA that are also provided with the runtime. In this case, you will need to edit the OBJ of your non-EGL main program and change all references to it's name to NONVGRTN. Then use the linkage above to create the PHASE for your program. If you wish, you can also use the PLX version of ELAWREGA called ELAWREG1 (supplied with Runtime).
More details can be found in the comments section for ELAWBAT. Please note that there is an error in the comments regarding the linkage step. You will also need to include ELAWBAT, as per the linkage step above. This comment will be corrected in the next PTF.