Error: EZABX000 An error has occurred in program when calling dynamically a Microfocus Cobol subpgm from the Easytrieve pgm.

Document ID : KB000054923
Last Modified Date : 14/02/2018
Show Technical Document Details

This error message is caused because the Easytrieve runtime can't find/load the particular sub program. There are several reasons why this may occur.

  1. In Unix environments, the sub programs needs to be compiled and placed into a shared library that is in the LD_SHARED_LIBRARY path environment variable. Directories listed in LD_SHARED_LIBRARY path are searched for shared libraries. AIX specified environment variable is LIBPATH, not LD_SHARED_LIBRARY.

  2. Subroutine path should be set with environment variable LIBPATH.

  3. The following are considerations to make when calling COBOL programs from CA Easytrieve:

    1. Calling conventions must match. Since CA-Easytrieve uses C calling convention, the COBOL program also needs to use it.

    2. Parameter types must match. Each parameter's CA-Easytrieve data type should be carefully matched to an appropriate COBOL data type.

    3. Parameters are passed by reference. This means a pointer is passed for each parameter and the callee is able to modify the caller's storage.

    4. Code sets should match. Whether the CA-Easytrieve program passes ASCII or EBCDIC data, the COBOL program needs to be compiled for that run-mode.

    5. Export the COBOL entry points. Each COBOL entry point that is called from CA-Easytrieve needs to be exported so that it can be found after the Subroutine/DLL is loaded. If Microsoft's linker is used, this is done with the /EXPORT switch.

  4. The Easytrieve program should have defined a DECLARE and CALL statement for each C and Cobol subprogram and a .exp file for C-subprograms containing a C-subprogram name.

  5. Please check the subprogram name in the CALL statement in the Easytrieve program. The subprogram name is case sensitive and should match the name of the called module.