View previous topic :: View next topic
|
Author |
Message |
shrivatsa Warnings : 1 Active User
Joined: 17 Mar 2006 Posts: 174 Location: Bangalore
|
|
|
|
I am executing hello world program. I was able to do the compile, but when I run the program I am getting the error 806 load module not found in the dataset. But when I checked the program is available.
Code: |
//KC03G65B JOB (123),'MFT',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID,REGION=0M
//**********************************************************************
//* RUN JCL FOR PL/I
//**********************************************************************
//GO EXEC PGM=SRCEL01
//STEPLIB DD DSN=KC03G65.MFT.PLI.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY |
Code: |
01.33.27 JOB08439 IEW4007I FIND FOR MODULE SRCEL01 FAILED BECAUSE DIRECTORY EN
01.33.27 JOB08439 CSV003I REQUESTED MODULE SRCEL01 NOT FOUND
01.33.27 JOB08439 CSV028I ABEND806-04 JOBNAME=KC03G65B STEPNAME=GO
01.33.27 JOB08439 IEA995I SYMPTOM DUMP OUTPUT 461
461 SYSTEM COMPLETION CODE=806 REASON CODE=00000004
461 TIME=01.33.27 SEQ=14450 CPU=0000 ASID=002D
461 PSW AT TIME OF ERROR 070C1000 8127FAD6 ILC 2 INTC 0D
461 NO ACTIVE MODULE FOUND
461 NAME=UNKNOWN |
Code: |
BROWSE KC03G65.MFT.PLI.LOADLIB Row 0000001 of 0000001
Command ===> Scroll ===> PAGE
Name Prompt Size Created Changed ID
_________ SRCEL01 |
Kindly let me know what could be the reason for this. |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
|
|
Back to top |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 712 Location: Denmark
|
|
|
|
The library display indicates that it is not a loadlib. Perhaps you have saved the object deck rather than the loadmodule? |
|
Back to top |
|
|
shrivatsa Warnings : 1 Active User
Joined: 17 Mar 2006 Posts: 174 Location: Bangalore
|
|
|
|
Below is the current attributes of the PDS created. I tried to create the PDS with U format then my compile JCL abended with Maxcc=0012.
Code: |
Command ===>
More: +
Data Set Name . . . : KC03G65.MFT.PLI.LOADLIB
General Data Current Allocation
Management class . . : DEFAULT Allocated tracks . : 25
Storage class . . . : PRIM90 Allocated extents . : 1
Volume serial . . . : KCTR37 Maximum dir. blocks : NOLIMIT
Device type . . . . : 3390
Data class . . . . . : **None**
Organization . . . : PO Current Utilization
Record format . . . : FB Used pages . . . . : 6
Record length . . . : 80 % Utilized . . . . : 2
Block size . . . . : 3200 Number of members . : 1
1st extent tracks . : 25
Secondary tracks . : 25
Data set name type : LIBRARY Dates
Data set version . : 1 Creation date . . . : 2018/12/05
Referenced date . . : 2018/12/05
Expiration date . . : ***None*** |
Compile JCL
Code: |
//KC03G65B JOB NOTIFY=&SYSUID
// SET MEM=SRCEL01
//PLI EXEC IBMZC,PARM='OBJECT,OPTIONS,LIST,MAP',REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//PLI.SYSIN DD DSN=KC03G65.MFT.SRCELIB(&MEM),DISP=SHR
//PLI.SYSLIN DD DSN=KC03G65.MFT.PLI.LOADLIB(&MEM),DISP=SHR |
|
|
Back to top |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2455 Location: Hampshire, UK
|
|
|
|
You really need to read the PL/1 User Guide which explains everything you need to know about compiling and linking/binding.
You should also read the comments in the IBMZC procedure that you are using.
You can call a PDS anything you want - it still will not make it a loadlib unless it has the attributes of a loadlibrary and the member is the output from the linker/binder.
Edited to remove wrong information |
|
Back to top |
|
|
steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
You get one, and only one, chance to create a PDSE as a data set containing "program objects" (e.g. a binary executable program) or what amounts to a anything else, and that amounts to the agent that stores the first member in the data set. The binary output of a compiler like the PL/I compiler stored in the data set specified by the DD statement with DD name SYSLIN is in the anything else group.
The only agent that can create a "program object" is the Binder.
Properly speaking, your compile JCL should be something like -
Code: |
//PLI EXEC IBMZCB,PARM.PLI='OBJECT,OPTIONS,LIST,MAP',REGION=0M
//PLI.SYSIN DD DSN=KC03G65.MFT.SRCELIB(&MEM),DISP=SHR
//BIND.SYSLMOD DD DSN=KC03G65.MFT.PLI.LOADLIB(&MEM),DISP=SHR |
Do not actually use this JCL until you have verified that the parameter text in PARM.PLI='...' is correct. I suspect it is not.
The IBMZCB cataloged procedure has two steps. The first step runs the PL/I compiler. The second step runs the Binder. |
|
Back to top |
|
|
shrivatsa Warnings : 1 Active User
Joined: 17 Mar 2006 Posts: 174 Location: Bangalore
|
|
|
|
Thanks to steve-myers his suggestion worked by using the given compile JCL and all others who helped me.
Thanks |
|
Back to top |
|
|
|