View previous topic :: View next topic
|
Author |
Message |
bommerasrikanth
New User
Joined: 28 Nov 2005 Posts: 4
|
|
|
|
Dear All,
I need a JCL a to compile a REXX program which gives me Load module. I have to run that load module of REXX program in a Batch JCL.
ISPF Primary Menu > 4 > 14 option provides Compile facility for REXX program. It is working fine, But this is a foreground option. When iam trying to use the same functionality in Batch (ISPF menu > 5 > 14) option, its not working.
Can any one help me in this regard.
Thanks
Srikanth |
|
Back to top |
|
 |
John_Deal
New User
Joined: 28 Nov 2005 Posts: 4 Location: Montgomery, AL, USA
|
|
|
|
Why go to the trouble of compiling the REXX? Most people just use PGM=IKJEFT01 to execute the REXX...
 |
|
Back to top |
|
 |
MGIndaco
Active User

Joined: 10 Mar 2005 Posts: 432 Location: Milan, Italy
|
|
|
|
Try to visit this link:
http://ibmmainframes.com/viewtopic.php?t=6527
Mr John, I suppose that everyone have a reason to compile a rexx program: i.e. protect the source code, improve performances.
I suppose that the right thing is how many people know that rexx may be compiled? |
|
Back to top |
|
 |
bommerasrikanth
New User
Joined: 28 Nov 2005 Posts: 4
|
|
|
|
Hi MGIndaco,
Thanks, Compile JCL is working fine. But when iam trying to execute this rexx load module using PGM=IKJEFT1B in batch JCL, job is failing with MAX-RC=12.
The error message shown in SYSTSPRT of job is "Record format of exec load data set is not valid. RECFM must be fixed or variable, and spanned or track overflow records are not supported."
This problem may be due to the Record format of the Target PDS (LINKLIB). I think its not possible to execute Unformatted REXX load mudule using PGM=IKJEFT1B in batch JCL.
But while compile the rexx program i have given Target PDS (LINKLIB) record format as FB with length 80. After the compile job execution the Target PDS format was changed to 'U' (Unformatted).
Could you please tell me what was the problem.
Regards,
Srikanth. |
|
Back to top |
|
 |
MGIndaco
Active User

Joined: 10 Mar 2005 Posts: 432 Location: Milan, Italy
|
|
|
|
Don't worry!
If you use compiled rexx you can avoid the sysexec(that allow only FB or VB)!
Try using the STEPLIB!
If you does not use tso command or external function within your source you can run your program without the IKJ* using instead PGM=MYREXX
If you have some problem I'm sure that we will find a solution. |
|
Back to top |
|
 |
bommerasrikanth
New User
Joined: 28 Nov 2005 Posts: 4
|
|
|
|
Hi MGIndaco,
I tried to execute a simple compiled rexx using STEPLIB and PGM=MYREXX. Its working fine. But when iam trying run same compiled rexx using STEPLIB and PGM=IKJEFT1B, iam getting 'COMMAND MYREXX NOT FOUND' message in sysout.
Plz help me bcaz i have to make use of IKJ*, Since i have some rexx codes which uses tso commands.
Thanks,
Srikanth |
|
Back to top |
|
 |
MGIndaco
Active User

Joined: 10 Mar 2005 Posts: 432 Location: Milan, Italy
|
|
|
|
mmm... usually a COMMAND NOT FOUND means that your module, compiled or not is not present both in STEPLIB and SYSEXEC.
I mean: there are some difference between IKJ* but this error reflect other problem.
Are you sure that your module is in the correct library?
If I'm wrong I'm really sorry. |
|
Back to top |
|
 |
bommerasrikanth
New User
Joined: 28 Nov 2005 Posts: 4
|
|
|
|
MGIndaco,
Thanks a lot for your quick reply.
Yes, i double checked the Job. I have given the correct concatenation to STEPLIB. My rexx compiled module is present in the library which i have concertinaed ot STEPLIB.
Regards,
Srikanth.
-----------MY JCL------------------
//REXXJCL JOB (X,XXX,XXXX),
// 'REXX SENMAIL ',CLASS=I,
// MSGCLASS=T,NOTIFY=&SYSUID,
// TIME=1
/*JOBPARM LINES=999999,PAGES=999999
//*
//*-------------------------------*
//* BATCH JCL TO SUMBIT REXX TOOL
//*-------------------------------*
//*
//RUNREXX EXEC PGM=IKJEFT1B,DYNAMNBR=30
//STEPLIB DD DSN=XXX.XXXXX.REXXCOMP,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//RPTFILE DD SYSOUT=*
//SYSTSIN DD *
%TINFO
/*
Here:
TINFO ---- my rexx tool
XXX.XXXX.REXXCOMP --- PDS library where my load is present.
Message in SYSTSPRT:
READY
%TINFO
COMMAND TINFO NOT FOUND |
|
Back to top |
|
 |
nikyns
New User

Joined: 24 Aug 2005 Posts: 1 Location: Bangalore
|
|
|
|
I guess STEPLIB is only for the programs that are coded in "PGM=". To find TINFO it should have a SYSEXEC pointing to the right DSN. |
|
Back to top |
|
 |
MGIndaco
Active User

Joined: 10 Mar 2005 Posts: 432 Location: Milan, Italy
|
|
|
|
Try to use this method:
Code: |
//REXXJCL JOB (X,TTT,XXXX),
// 'REXX SENMAIL ',CLASS=I,
// MSGCLASS=T,NOTIFY=&SYSUID,
// TIME=1
/*JOBPARM LINES=999999,PAGES=999999
//*
//*-------------------------------*
//* BATCH JCL TO SUMBIT REXX TOOL
//*-------------------------------*
//*
//RUNREXX EXEC PGM=IKJEFT1B,DYNAMNBR=30,PARM=TINFO
//STEPLIB DD DSN=TTT.XXXXX.REXXCOMP,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//RPTFILE DD SYSOUT=*
//SYSTSIN DD DUMMY
/* |
SYSTSIN is valid to have a tso batch environment or to pass input parameter to a Rexx exec that is "usually" called from PARM.
I hope in this suggest. |
|
Back to top |
|
 |
MGIndaco
Active User

Joined: 10 Mar 2005 Posts: 432 Location: Milan, Italy
|
|
|
|
This is from the TSO/E Command Reference so, it's clear why your command is not found. Using the percent symbol you use the Extended Implicit Form that will search for your command only in procedure library.
Quote: |
EXEC Command
Use the EXEC command to execute a CLIST or REXX exec.
You can specify the EXEC command or the EXEC subcommand of EDIT and TEST
in three ways:
Explicit form: Enter EXEC or EX followed by the name of the data set that
contains the CLIST or REXX exec. If you need prompting you should invoke
EXEC explicitly with the PROMPT option.
Implicit form: Do not enter EXEC or EX; enter only the name of the member
to be found in a procedure library such as SYSEXEC or SYSPROC. A
procedure library consists of partitioned data sets allocated to the specific file
(SYSPROC or SYSEXEC) either dynamically by the ALLOCATE command or
as part of the LOGON procedure. TSO/E determines if the member name is a
system command before it searches the libraries.
Extended implicit form: Enter a percent sign followed by the member name.
TSO/E only searches the procedure library for the specified name. This form is
faster because the system doesn't search for commands.
Some of the commands in a CLIST might have symbolic variables for operands.
When you specify the EXEC command, you can supply actual values for the
system to use in place of the symbolic variables. In addition, when you invoke a
REXX exec you can pass arguments on the EXEC command. Specify the
arguments in single quotes. |
I hope in this suggest. |
|
Back to top |
|
 |
|