Using the CEEFETCH macro

CEEFETCH dynamically loads a routine and is preferred over CEELOAD for loading routines. However, it does not create a nested enclave. CEEFETCH is the only supported method for loading a routine that was created using the DFSMS Binder when omitting the use of the Language Environment Prelinker Utility. The Language Environment Prelinker Utility function is provided in the DFSMS Binder eliminating the requirement for the prelink step to create the routine.

System services should not be used to delete modules loaded with CEEFETCH; instead, the CEERELES macro should be used to delete routines loaded with CEEFETCH. During thread (if SCOPE=THREAD) or enclave (if SCOPE=ENCLAVE) termination, Language Environment deletes modules loaded by CEEFETCH.

If CEEFETCH completes successfully, the address of the loaded routine is found in R15. The routine can then be invoked using BALR 14,15 (or BASSM 14,15). The syntax of CEEFETCH is described in z/OS Language Environment Programming Guide.

CEEFETCH can be used to dynamically load a routine that has been compiled XPLINK, as long as the entry point has been defined using #pragma linkage (..., fetchable).