Im facing some issues in a COBOL-ASM LE env that Ive tried to explain here.
I have a COB code(MNPROPDA) with CALL statements to ASM1 code(OUPHPIOC). The CALLs are actually to different labels inside ASM1. ASM1 has LOAD macro statements for ASM2(OUPIRPD). ASM2 has further calls to other ASMnn codes in-turn.
Now, the initial runtime error while running the COB code, was U4093 REASON CODE=000003EC. The COB prog is being upgraded to Enterprise Cobol via a LE upgrade project.
The AMODE/RMODE for the prod loadmod of the COB code is 24/24. I did some lookup and decided to pass 31/ANY to the COB code in link-edit & then run it again. On this run, it gave a U4087, REASON CODE=0000000A error. It seemed an issue with missing components from ASM2, which looks misleading.
A similar setup of these ASM codes with a PL1 code is working fine for the same LE env.
Im attaching the 3 main codes & some compile n runjob dumps. Hopefully they will be useful.
Requesting your help to resolve this issue. Please let me know if I can provide any more relevant info.
while the effort is commendable
You should not really expect people to go thru all the sources You posted to help You.
forum reply and answer are usually of the quick and dirty type,
You should not expect people to proceed thru a full session of problem determination
what about getting Your support/project leader involved ???
also it looks like the material posted contains sensitive data,
and You should remember that most of the people helping cannot doenload attachments
Joined: 23 Nov 2006 Posts: 19270 Location: Inside the Matrix
Suggest you create a new tiny test calling program and similar asm program and work thru the issue with these.
Once you find the problem, make whatever change(s) are needed to the original code.
If you have some very small bits of test code, you can post them here using copy/paste and the code tag along with the basic diagnostic information. Often when a 40xx is raised, there is some descriptive information generated as well.
Joined: 14 Jan 2008 Posts: 2504 Location: Atlanta, Georgia, USA
I've just gone through this with a customer, where they "had to" compile the Enterprise caller using DATA(24) and AMODE/RMODE 24.
I had asked the programmers why and of course, they didn't know and were just following the lemmings as they leaped off the cliff.
Unless any of the Assembler sub-programs contain DCB's or anything else which would require RMODE 24 or can handle 31-Bit addresses (AMODE 31), then they can be Assembled/Linked as AMODE 31 / RMODE ANY and the Enterpise caller can be compiled with DATA(31) and Linked as AMODE 31 / RMODE ANY.
Assembler programs with DCB's which have the ability to handle 31-Bit addresses, can be Linked as AMODE 31 / RMODE 24.
Previous example of re-entrant code to allow DCB's to execute in an AMODE 31 / RMODE ANY Assembler program -
thanks for all your responses.. i could however find the below for U4093 (X'FFD') in a runtime error manual --
Unable to load event handler for a high-level language. The last 3 digits of the decimal reason code indicate the facility ID of the component that did not load correctly.
The name of the event handler for which the load was attempted is constructed as follows:
CEEEVxxx for non-XPLINK event handlers.
CELHVxxx for XPLINK event handlers.
In both cases, xxx is the 3 digits described above.
For example, CEEEV003 is the non-XPLINK C/C++ event handle, and CELHV003 is the XPLINK C/C++ event handler. If either of these cannot be loaded, the reason code will be X'3EB' (1003).
The load may have failed because the correct data set containing the event handler was not found in the search concatenation. For example, CELHV003 is contained in the Language Environment SCEERUN2 data set, which typically is part of your STEPLIB or LINKLST.
Programmer Response: Set the XPLINK keyword of the CEELRR macro to YES when initializing the LRR environment.
System Action: Enclave terminated
My error x'3EC' == 1004. My runjcl steplib has 2 pds among the usual loadlibs.. namely SYS1.SCEERUN & SYS1.SCEERUN2. Neither of them contain any event handler CEEEV004 or CELHV004 loadmod. There is however CEEEV003 in both of them. Can this be a logical reason for U4093 (X'3EC') error ?