Compiled REXX Code gives error.



IBM's Command List programming language & Restructured Extended Executor

Compiled REXX Code gives error.

Postby Viswanathchandru » Tue Nov 26, 2013 2:17 am

Dear all,

I have a piece of rexx code that access the SDSF environment. This exec runs in batch mode. When I tried running the code in batch without compiling the source it works fine. But when i compiled the same source and ran it in batch mode I'm getting the below error.


IRX0250E System abend code 0C4, reason code 00000017
. I googled this error but not able to find a proper solution. Can someone please guide me where do I go wrong.

I'm using IKJEFT01 for my batch run.


Thanks,
Viswa..
Viswanathchandru
 
Posts: 271
Joined: Mon Oct 25, 2010 2:24 pm
Has thanked: 25 times
Been thanked: 0 time

Re: Compiled REXX Code gives error.

Postby Akatsukami » Tue Nov 26, 2013 2:27 am

Are you using the MVS stub?
"You have sat too long for any good you have been doing lately ... Depart, I say; and let us have done with you. In the name of God, go!" -- what I say to a junior programmer at least once a day
User avatar
Akatsukami
Global moderator
 
Posts: 1058
Joined: Sat Oct 16, 2010 2:31 am
Location: Bloomington, IL
Has thanked: 6 times
Been thanked: 51 times

Re: Compiled REXX Code gives error.

Postby Viswanathchandru » Tue Nov 26, 2013 2:38 am

Hello Akatsukami,

Thanks for your time..

I''m not sure what is STUB MVS.. From what I understood, I'm not using any ADDRESS LINKMVS or ATTACHMVS commands inside my REXX.


Regards,
Viswa...
Viswanathchandru
 
Posts: 271
Joined: Mon Oct 25, 2010 2:24 pm
Has thanked: 25 times
Been thanked: 0 time

Re: Compiled REXX Code gives error.

Postby enrico-sorichetti » Tue Nov 26, 2013 2:42 am

cheers
enrico
When I tell somebody to RTFM or STFW I usually have the page open in another tab/window of my browser,
so that I am sure that the information requested can be reached with a very small effort
enrico-sorichetti
Global moderator
 
Posts: 3006
Joined: Fri Apr 18, 2008 11:25 pm
Has thanked: 0 time
Been thanked: 165 times

Re: Compiled REXX Code gives error.

Postby Pedro » Tue Nov 26, 2013 4:15 am

I'm using IKJEFT01 for my batch run.

Show us the details.

I'm not using any ADDRESS LINKMVS or ATTACHMVS commands inside my REXX.

The stub has to do with how your exec is being called.

Show us your:
1. rexx compile job
2. link edit job
3. your IKJEFT01 job.
4. messages from SYSLOG at the time of the 0C4.

It is not clear if you have successfully compiled other rexx programs. I suggest you start with simple 'hello world' program to make sure you are compiling correctly, then introduce the SDSF calls.
Pedro Vera
User avatar
Pedro
 
Posts: 686
Joined: Thu Jul 31, 2008 9:59 pm
Location: Silicon Valley
Has thanked: 0 time
Been thanked: 53 times

Re: Compiled REXX Code gives error.

Postby Viswanathchandru » Wed Nov 27, 2013 1:15 am

Hi Pedro,

Thanks for your time..

1. rexx compile job


//SYS883KV  JOB CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID               
//PROCLIB JCLLIB ORDER=SYS8333K.JCL.CNTL                         
//S1 EXEC PROC=REXXC                                             
//REXX.SYSCEXEC DD DSN=SYSI.PRODCHKT.LOAD(MASTER),DISP=SHR     
//REXX.SYSIN    DD DSN=SYS833K.PRODCHKT.EXEC(MASTER),DISP=SHR   


//REXXC   PROC OPTIONS='XREF ALTERNATE TRACE SLINE',         
//             COMPDSN='SYS1.REXX.LINKLIB',                   
//             VOL='MZAP11',                                 
//             UNT='3390'                                     
//*                                                           
//*-----------------------------------------------------------
//* Compile REXX program.                                     
//*-----------------------------------------------------------
//*                                                           
//REXX    EXEC PGM=REXXCOMP,PARM='&OPTIONS'                   
//STEPLIB   DD DISP=SHR,DSN=&COMPDSN,UNIT=&UNT,VOLUME=SER=&VOL
//SYSPRINT  DD SYSOUT=*                                       
//SYSTERM   DD SYSOUT=*                                       
//*SYSIEXEC DD DUMMY                                         
//*SYSDUMP  DD DUMMY                                         
//SYSCEXEC  DD DSN=&&CEXEC(GO),DISP=(MOD,PASS),UNIT=SYSDA,   
//             SPACE=(800,(800,100,1))                       
//SYSPUNCH  DD DSN=&&OBJECT,DISP=(MOD,PASS),UNIT=SYSDA,   
//             SPACE=(800,(800,100))                     
//    PEND                         



your IKJEFT01 job


//STEP1 EXEC PGM=IKJEFT01                                 
//ISPLOG DD SYSOUT=*,DCB=(LRECL=125,BLKSIZE=129,RECFM=VA) 
//ISPPROF DD DSN=&&TEMP,DISP=(NEW,PASS),UNIT=SYSDA,       
//     DCB=(RECFM=FB,LRECL=80,DSORG=PO),SPACE=(TRK,(1,1,5))
//ISPLLIB DD DSN=SYS1.SISPLOAD,DISP=SHR                   
//ISPMLIB DD DSN=SYS1.SISPMENU,DISP=SHR                   
//ISPPLIB DD DSN=SYS1.SISPPENU,DISP=SHR                   
//ISPSLIB DD DSN=SYS1.SISPSLIB,DISP=SHR                   
//ISPTLIB DD DSN=SYS1.SISPTENU,DISP=SHR                   
//SYSPROC DD DSN=SYS1.SISPEXEC,DISP=SHR                   
//SYSTSPRT DD SYSOUT=*                                     
//SYSEXEC DD DSN=SYSI.PRODCHKT.LOAD,DISP=SHR               
//SYSTSIN DD *                                             
ISPSTART CMD(%MASTER SYSI.PRODCHKT.CONFIG.FILE)           


messages from SYSLOG at the time of the 0C4


 IEA995I SYMPTOM DUMP OUTPUT 777                                   
 SYSTEM COMPLETION CODE=0C4  REASON CODE=00000011                   
  TIME=14.35.07  SEQ=05204  CPU=0000  ASID=005B                     
  PSW AT TIME OF ERROR  078D2000   85F95080  ILC 4  INTC 11         
    NO ACTIVE MODULE FOUND                                         
    NAME=UNKNOWN                                                   
    DATA AT PSW  05F9507A - 58B0B000  1ABABF21  B009BD21           
    AR/GR 0: 00AB3690/166B5C90   1: 00000000/166B81B0               
          2: 00000000/1670E0F8   3: 00000000/1670E178               
          4: 00000000/00000008   5: 00000000/05F95000               
          6: 00000000/00000008   7: 00000000/00000B20               
          8: 00000000/00000000   9: 00000000/1670E180               
          A: 00000000/1670E180   B: 00000000/0F64D552               
          C: 00000000/05F97414   D: 00000000/166B8000               
          E: 00000000/85F97400   F: 00000000/05F95000               
  END OF SYMPTOM DUMP



Regards,
Viswa....
Viswanathchandru
 
Posts: 271
Joined: Mon Oct 25, 2010 2:24 pm
Has thanked: 25 times
Been thanked: 0 time

Re: Compiled REXX Code gives error.

Postby NicC » Wed Nov 27, 2013 2:56 pm

This may not be relevant but...your compile job does not show the load library that the program is being compiled into.
Do you have any messages in SYSTSPRT?
I do not know if you can compile with a trace but if you can what did it show?
The problem I have is that people can explain things quickly but I can only comprehend slowly.
Regards
Nic
NicC
Global moderator
 
Posts: 3025
Joined: Sun Jul 04, 2010 12:13 am
Location: Pushing up the daisies (almost)
Has thanked: 4 times
Been thanked: 136 times

Re: Compiled REXX Code gives error.

Postby Pedro » Wed Nov 27, 2013 10:34 pm

//REXX.SYSCEXEC DD DSN=SYSI.PRODCHKT.LOAD(MASTER),DISP=SHR 

The rexx compiler has two different forms of output. If you use the CEXEC option, it puts the compiled program into the dataset, but it is not a load module. The compiled CEXEC should be put into one of your normal sysproc or sysexec libraries. The record format for the dataset should be a FB(80) or VB(255), or whatever your site uses. However, in your example, you are putting it into a LOAD dataset. I believe you will get unpredictable results. When you compile with CEXEC, the result looks binary, but it is not a load module. You still call it exactly like the un-compiled version of the rexx program.

The default is to use CEXEC in the options:
//REXXC   PROC OPTIONS='XREF ALTERNATE TRACE SLINE',   

But you can also specify the OBJECT parameter (and NOCEXEC). When you specify OBJECT, a file is added to the SYSPUNCH dataset. This file needs to be link edited (along with the stub) to create a load module. The load module will go into a dataset with RECFM(U).

In summary: use an exec library instead of: SYSI.PRODCHKT.LOAD
Pedro Vera
User avatar
Pedro
 
Posts: 686
Joined: Thu Jul 31, 2008 9:59 pm
Location: Silicon Valley
Has thanked: 0 time
Been thanked: 53 times


Return to CLIST & REXX

 


  • Related topics
    Replies
    Views
    Last post