On the mainframe using Enterprise Cobol for z/OS, is it possible to dynamically CALL a Cobol Dyamic link library (DLL) program from a cobol program that has been compiled with NODLL?
Dynamically calling a NODLL cobol program from a DLL cobol program on z/OS
2.3k views Asked by Kb. At
1
There are 1 answers
Related Questions in COBOL
- how to create an array of multiples of 5 and display it in reverse
- Z/OS Cobol 6.3 copy: how to include only a chunk?
- Trying to add gm and hm calculations to cobol program
- Cobol program wont read until end of file
- Cobol errors, cannot seem to figure it out
- Cobol file WRITE not allowed, file not open for output (status = 48) for file output-file
- Record grouping and aggregation
- open fetch and close cursor DB2
- How to create comments using only * in COBOL?
- DB2 contention issues
- Using the routine CSNBOWH on IBM I - MD5
- Addition of PIC 9 variable with space not causing ABEND S0C7
- FIlling a zone with S9(5)V9(8) COMP-3
- Microfocus COBOL - Remote debugging requires ALL programs to be compiled for debugging?
- VSCode snippet, how to force the starting column of a line?
Related Questions in MAINFRAME
- Where can I download ECI resource adapter (cicseci.rar). Unable to find out it in IBM portal
- Mainframe Programming Sorting, OUTFIL REMOVECC,NODETAIL
- Z/OS Cobol 6.3 copy: how to include only a chunk?
- SHA256 Checksum of a File transmitted from Mainframe to Azure
- open fetch and close cursor DB2
- How to "stack" an ISPF command?
- DB2 contention issues
- IBM z/OS TSO ISPF Editor Cancel command - how to add "Are You Sure?" query dialog
- FIlling a zone with S9(5)V9(8) COMP-3
- Mainframe monitoring using Zabbix
- How to programmatically overwrite DCI 2.0 policy via REXX or JCL?
- SEARCH ALL with a key PIC XX
- Why is this COBOL code failing to compile?
- Use MVS Dsname conventions. Mainframe name convention while downloading ftp using python
- COBOL issue (Compiling and executing)
Related Questions in DLL
- How to find a sequence of bytes on the target program from my injected dll?
- .lib not generated when building DLL project using template class
- The file "spng.dll" is not founded in my Visual Studio's project and i get an error
- Handling Memory Allocation and Pointers in Electron between Node.js and C++ DLL
- Multi level project reference using dll
- Wix MSI Project Harvesting Error Message 'dll is not running' on Build
- Windows Custom Credential Provider is not displaying tile on logon for all users in a pc
- How can I verbosely track the whole process of calling a function?
- Is dll static var shared between threads that load the same dll?
- JNR-FFI - Callback Pointer crash
- How can I patch a function call to a Windows DLL (e.g. kernel32 LoadLibrary)? Is this even possible?
- PyInstaller with PyQt5 Generates "DLL load failed" Error for QtPrintSupport
- What happens if I link two different libraries providing the same symbols in Visual Studio?
- how to test .dll on Linux
- PHP FFI - How to free memory created by FFI::new("void*[2]", false, true)
Related Questions in LOADMODULE
- Cannot load C:/server/php/php-8.2.13/php8apache2_4.dll into server: The specified module could not be found
- clarification and support on 'ERR_DLOPEN_FAILED'
- Can I import a function dynamically from different .py files based a condition through command "from <root.fold1.fold2.{dynamic name}> import module"
- Windows DLL user space calling process
- debugging vxworks loadModule failure
- I have the start address of a loaded DLL, how can I discover and call its exports?
- Remove a "deadend" Alias from a PDS
- Loading a module from /usr/lib/modules into Apache
- How do I pass arguments while loading any modules in typescript?
- Can modules be loaded and not show up on a phpinfo() page?
- Apache 2.4 with php5
- how can I load a joomla module as a link?
- Angular Karma Jasmine forEach@ Error
- How can I copy load module using rexx?
- How to add modules into Apache (mod_dbd and mod_auth_dbd)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
There are a number of ways to do what you want.
If, by dynamically call, you mean call via a data definition variable, I don't think you can do this with the linker/binder since the binder needs to know the target functions at bind time.
You have to specifically
dllloadthe DLL load module,dllqueryfnthe function and call it that way.To use the linker/binder, I believe the following steps are required (
P1is theNODLLCOBOL program doing the calling,P2is theDLLprogram being called):P2must be compiled and bound with theDLLoption.P1must be compiled withNODYNAMand bound with DLL.P1must containCALL 'dll-func'(i.e., literal calls only).P1,SYSLIBmust first point to theP2location.This will cause the binder to incorporate both
P1andP2into a single load module which is not exactly DLL calling but I don't think there's any way around that other than thedllload/dllqueryfnsolution.I've used the older-style dll-functions but, if you're at a high-enough level, there are also the newer
dlopen/dlsymC helper functions.This page provides support for my contention that
NODLL/DLLprograms can only call each other if bound into a single load module. You still have to use static calls however.This page offers up another option, where you can put the DLL program into the same load module as the calling program and use static calls to get to it. It seems that the DLL program can call other DLL programs not in that load module. So it may be possible to provide a static gateway function in the DLL program that can dynamically call a DLL function not in the load module. This is beyond anything I've ever done on the big iron so you'll have to experiment.
Both those pages are from the publib-boulder sites which everyone using an IBM product should know about (along with the redbooks/redpapers site as well).
Me, I prefer the
dllload/dllqueryfnsolution since that's what I'm used to from AIX and other UNIXes and it seems to provide maximum flexibility.