Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Need Help on PL/I Compilation

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & Assembler
View previous topic :: :: View next topic  
Author Message
satish.ms10

Active User


Joined: 10 Aug 2009
Posts: 158
Location: India

PostPosted: Thu Nov 06, 2014 6:10 pm    Post subject: Need Help on PL/I Compilation
Reply with quote

Hi All,

I am getting S0C7 ABEND when I am running my PL/I program. Let me explain the scenario with the below example.

I have 3 batch PL/I programs say A, B and C.

A is a main program and no calls to any sub-program.
B is also a main program and it calls sub-program C.

I compiled above program using the following compile and link-edit options respectively.

Code:
PLIPARM=('LIST,SOURCE,OPTIONS')
LNKPARM='LIST,XREF,RENT,MAP,COMPAT=PM3'


When I run program A, the job is ending with MAXCC=0 and got the proper output.

But, when I run program B, the job is ending with S0C7 ABEND code.

B is executing till the CALL statement to C sub-program and the print/display statement just before the call is printing to SYSPRINT.

Not sure where I am going mistake in compilation.

Could anyone help me in this regard.

Let me know if you need additional information, if any.

Thanks in advance.
Back to top
View user's profile Send private message

Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 1712
Location: UK

PostPosted: Fri Nov 07, 2014 2:30 am    Post subject: Reply to: Need Help on PL/I Compilation
Reply with quote

As program A is working ok why mention it at all?

So program B gets a S0C7 somewhere before it calls C. Or is it the call to C that is failing? What diagnostics do you have? Have you inserted PUT SKIPS at key points? Remember to duplicate them as a single one will not get printed in the even of a failure. Rmove the duplicate when you have successfully past that point. You eed to PUT SKIP all the data used in the failing statement. IF it is the call that is failing check the parameters are passed correctly and that C is declared correctly.
Back to top
View user's profile Send private message
satish.ms10

Active User


Joined: 10 Aug 2009
Posts: 158
Location: India

PostPosted: Fri Nov 07, 2014 12:50 pm    Post subject:
Reply with quote

Hi Nic,

Have you placed PUT SKIP statements in my program. All the PUT statements, till the CALL C statement, are getting executed and the messages are printing in SYSPRINT. PUT statements after the CALL statement were not executed. I also noticed, no PUT statement in C sub-program.

I am not passing any arguments to C program. Here is the compile procedure that I am using:



Code:
//PL1CMP   PROC STRG=300,                                               
//         INDEX='CICSTS42.CICS',            CICS LIBRARIES QUALIFIER
//         DSCTLIB='CICSTS42.CICS.SDFHPL1',       PRIVATE MACRO/DSECT   
//         LNKPARM='LIST,XREF,RENT,MAP,COMPAT=PM3,CALL',    BIND OPTS   
//         PLIPARM=('LIST,SOURCE,OPTIONS'),                   OPTIONS 
//         MEMBER= YOUR SOURCE MEMBER NAME,
//         SRCE= YOUR SOURCE PDS,
//         LOADLIB= LOADLIB PDS
//*                                                                     
//*-----------------------------------------------------------------*   
//*                COMPILE STEP                                     *   
//*-----------------------------------------------------------------*   
//PLIO   EXEC  PGM=IBMZPLI,REGION=1024K,                               
// PARM=&PLIPARM                                                       
//STEPLIB  DD  DSN=IGY.SIGYCOMP,DISP=SHR                               
//SYSIN    DD  DSN=&SRCE(&MEMBER),DISP=SHR                             
//SYSLIB   DD  DSN=&DSCTLIB,DISP=SHR                                   
//         DD  DSN=&INDEX..SDFHPL1,DISP=SHR                             
//         DD  DSN=&INDEX..SDFHMAC,DISP=SHR                             
//         DD  DSN=&INDEX..SDFHSAMP,DISP=SHR                         
//SYSLIN   DD  DSN=&&BATCHLD,DISP=(NEW,PASS),UNIT=3390,               
//             SPACE=(TRK,(10,2)),                                   
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=2960,BUFNO=10)         
//SYSPRINT DD  SYSOUT=*                                               
//SYSTERM  DD  SYSOUT=*                                               
//SYSUDUMP DD  SYSOUT=*                                               
//SYSUT1   DD  SPACE=(100,(&STRG,&STRG),,,ROUND),UNIT=3390           
//SYSUT2   DD  SPACE=(100,(&STRG,&STRG),,,ROUND),UNIT=3390           
//SYSUT3   DD  SPACE=(100,(&STRG,&STRG),,,ROUND),UNIT=3390           
//SYSUT4   DD  SPACE=(100,(&STRG,&STRG),,,ROUND),UNIT=3390           
//SYSUT5   DD  SPACE=(100,(&STRG,&STRG),,,ROUND),UNIT=3390           
//*-----------------------------------------------------------------*
//*                LINK STEP                                        *
//*-----------------------------------------------------------------*
//LKED     EXEC PGM=IEWL,PARM='&LNKPARM',                             
//          COND=(4,LT,PLIO)                                 
//SYSLIB   DD  DSN=CEE.SCEELKED,DISP=SHR                     
//         DD  DSN=&LOADLIB,DISP=SHR                         
//SYSLIN   DD  DSN=&&BATCHLD,DISP=(OLD,DELETE),UNIT=3390,     
//             SPACE=(TRK,(10,2))                             
//         DD  DDNAME=SYSIN                                   
//SYSLMOD  DD  DSN=&LOADLIB(&MEMBER),DISP=SHR                 
//SYSPRINT DD  SYSOUT=*                                       
//SYSUDUMP DD  DUMMY                                         
//SYSIN    DD  DUMMY                                         
//SYSUT1   DD  SPACE=(TRK,(5,2)),UNIT=3390                   
//SYSUT2   DD  SPACE=(TRK,(5,2)),UNIT=3390                   
//SYSUT3   DD  SPACE=(TRK,(5,2)),UNIT=3390                   
//SYSUT4   DD  SPACE=(TRK,(5,2)),UNIT=3390                   
//     PEND                                                   


Main Program:

Code:
   TSTPL01: PROCEDURE OPTIONS(MAIN);                 
                                                     
      DCL SUBPL01 EXTERNAL ENTRY;                     
      DCL ADDR    BUILTIN;                           
                                                     
      DCL 1 STRUCT1,                                 
            2 PGMNAME           CHAR(20),             
            2 CHRVAL            CHAR(20);             
                                                     
      PUT SKIP LIST('MAIN PROGRAM STARTED...' );     
                                                     
      PGMNAME = 'TSTPL01';                           
      CHRVAL  = 'INPUT DATA';                         
                                                     
      PUT SKIP LIST('FETCHING...............' );     
      FETCH SUBPL01;                                 
      PUT SKIP LIST('CALLING................' );     
      PUT SKIP LIST('CALLING................' );     
      CALL SUBPL01;                                   
      PUT SKIP LIST('RETURNED...............' ); 
      PUT SKIP LIST('RETURNED...............' ); 
      RELEASE SUBPL01;                           
                                                 
      PUT SKIP LIST('... EXITING MAIN PROGRAM' );
                                                 
   END TSTPL01;                                   


Sub-program:

Code:
   SUBPL01: PROC;                                 
                                                 
      PUT SKIP LIST('SUB-PROGRAM STARTED...' );   
                                                 
      PUT SKIP LIST('... EXITING SUB-PROGRAM' ); 
                                                 
   END SUBPL01;


Kindly help. I am not sure where I am doing mistake.

Thank you very much for your kind help.
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7223

PostPosted: Fri Nov 07, 2014 1:04 pm    Post subject: Reply to: Need Help on PL/I Compilation
Reply with quote

Are you saying that gets you a S0C7?
Back to top
View user's profile Send private message
satish.ms10

Active User


Joined: 10 Aug 2009
Posts: 158
Location: India

PostPosted: Fri Nov 07, 2014 1:15 pm    Post subject: Reply to: Need Help on PL/I Compilation
Reply with quote

Hi Bill,

Yes, I am getting S0C7 at the CALL statement.

PUT statements executed till the CALL statement.

Thank you.
Back to top
View user's profile Send private message
prino

Active Member


Joined: 07 Feb 2009
Posts: 982
Location: Oostende, Belgium

PostPosted: Fri Nov 07, 2014 8:20 pm    Post subject:
Reply with quote

One: there is no numerical data in your program, so getting a S0C7 seems rather unlikely, or more to the point, it's utterly impossible!

Two:

Code:
//*-----------------------------------------------------------------*   
//*                COMPILE STEP                                     *   
//*-----------------------------------------------------------------*   
//PLIO   EXEC  PGM=IBMZPLI,REGION=1024K,
// PARM=&PLIPARM
//STEPLIB  DD  DSN=IGY.SIGYCOMP,DISP=SHR


What the fluck is 'IGY.SIGYCOMP' (the loadlib for the COBOL compiler) doing in PL/I compile JCL?????
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & Assembler All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Compilation Error in Translation Step. amitc23 CICS 4 Tue Mar 01, 2016 12:24 pm
No new posts IGYDS5000-U and IGYDS5062-U abend in ... Alks ABENDS & Debugging 5 Mon Jan 18, 2016 9:56 pm
No new posts Reason for DSNH204I error message in ... srinivasulu.p DB2 3 Mon Nov 17, 2014 12:00 am
No new posts Prelink and Binder step in compilatio... Raghu navaikulam PL/I & Assembler 2 Wed Sep 17, 2014 11:57 am
No new posts Copy book replace, compilation is fai... vinuseba COBOL Programming 12 Thu Feb 20, 2014 3:40 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us