Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Mass Compilation

50 views
Skip to first unread message

Grant Ward Able

unread,
Apr 10, 2006, 9:51:37 AM4/10/06
to
If the programs you need to submit all in a library and have the JCL
already setup in each member, I would do something like this:


.
.
.
dsname = "T54V01H.SASHI.UTIL "
do_it = 0
xxx = 0
x = OUTTRAP('var.')
Address 'TSO' 'LISTDS 'dsname 'MEMBERS'
x = OUTTRAP('OFF')

do i = 1 to var.0
if do_it = 1 then
do
xxx = xxx + 1
MEML.xxx = var.i
end
if do_it = 0 then
do
if var.i = '--MEMBERS--' then do_it = 1
end
end
MEML.0 = xxx

do i = 1 to MEML.0
ADDRESS TSO "SUBMIT 'T54V01H.SASHI.UTIL('"MEML.i"')'"
end
.
.
.


Good luck - Grant.

"Dumpa,
Sasikanth"
<Sasikanth.Dumpa@ To
AIG.COM> TSO-...@VM.MARIST.EDU
Sent by: TSO REXX cc
Discussion List
<TSO-...@VM.MARI Subject
ST.EDU> [TSO-REXX] Mass Compilation


10/04/2006 12:06


Please respond to
TSO REXX
Discussion List
<TSO-...@VM.MARI
ST.EDU>

Hi,

My problem is I have to compile around 300 programs at a time. I mean by
executing a Rexx or whatever it should at a time submit a list of 250 to
300
programs for compilation...for this I have written a Rexx but it is some
what cumbersome, I want to know is there anyother easy way for that...my
Rexx is as below

/* REXX */


ADDRESS ISPEXEC


DATAID="'"T54V01H.SASHI.UTIL"'"


"ISPEXEC LIBDEF ISPSLIB DATASET ID("DATAID")"


ADDRESS TSO


"ALLOC F(SAS) SHR DS('T54V01H.SASHI.BTSB.PANLIB(MEM1)') REUSE"


"EXECIO * DISKR SAS (FINIS STEM IN."


ADDRESS ISPEXEC


CNT1 = 1


DO I = 1 TO IN.0


CALL PROG_NAME


END


EXIT


PROG_NAME:


INT_UTIL = WORD (IN.I, 1)


PROG = INT_UTIL


CNT = CNT1


ADDRESS TSO "SUBMIT 'T54V01H.SASHI.UTIL (BTSCOM"CNT")'"


CNT1 = CNT1 + 1


RETURN

But the Problem with this Rexx is that I have to Define as many number of
jobs that I want to submit..I tried with file tailoring technique but when
it is trying to compile the second program it is telling the temporary file
is not usable.

Can anyone Suggest me Easier way to do this??


----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX

Hamilton, Robert L

unread,
Apr 10, 2006, 9:56:53 AM4/10/06
to
We've done this by queueing the jcl for each source mbr where each job
has the same name; write the entire queue to the internal reader & the
internal reader will release the jobs one at a time after the preceding
job has finished .

bobh

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf
Of Walter u. Christel Pachl
Sent: Monday, April 10, 2006 8:27 AM
To: TSO-...@VM.MARIST.EDU
Subject: Re: Mass Compilation

Instead of using FT-Services you can easily use Rexx to change a
skeleton-JCL for each program name and generate 50 or 100 steps each of
them compiling one program.
Send me the JCL of one compile and I'll help you with the generation...

Walter
----- Original Message -----
From: "Lindy Mayfield" <Lindy.M...@SSF.SAS.COM>
To: <TSO-...@VM.MARIST.EDU>
Sent: Monday, April 10, 2006 3:02 PM
Subject: Re: [TSO-REXX] Mass Compilation


Hi,

Can you be more specific about the problem you have with file tailoring?

Can you also tell a little about what you are compiling?

I've done things like this before. Let's say you have 250 - 300 COBOL
programs and say they are all regular compile/link. Basically one JCL
job stream and the only thing that changes is the name of the COBOL
source and the load module.

So you could have an input file with the list of COBOL program names:

COB001
COB003
COB004
COB005

Your Rexx could read that file and then using the FT services it could
customize the JCL by putting in the COBOL names in the appropriate
places and submit one JCL job for each COBOL program. This might be the
easiest.

You also have other choices. You can also create one big JCL job stream
with 20 or 50 (depending on the number of steps allowed in one JCL
stream, I
forget) compile/links in each job. That would take a little more
coding.

You could submit the compile/link as suggested above (one per job) but
you can either keep the job name the same so that they queue up and one
submits after the other finishes, or you can cycle the job names with
the suffix A-Z so that you have up to 26 running at one time.

Probably if you show your skeleton JCL we may be able to say what is
wrong.
I don't quite understand what you mean by the temporary file.

Lindy

Dumpa, Sasikanth

unread,
Apr 11, 2006, 1:08:25 AM4/11/06
to
Hi,

I am reading from an input file to rexx where the members are defined and
then submitting the jobs through rexx to compile all the programs at a time.
For this when I am using file tailoring I am getting an error message like

IKJ56250I JOB SNMS854A(JOB17433) SUBMITTED

23 *-* RETURN

IKJ56265I INPUT DATA SET T54VSDU.GCUV.ISPCTL1 NOT USABLE+

IKJ56265I THE DATA SET IS EMPTY

***

My Rexx is as below :

ADDRESS ISPEXEC

DATAID="'"T54V01H.SASHI.UTIL"'"

"ISPEXEC LIBDEF ISPSLIB DATASET ID("DATAID")"

ADDRESS TSO

"ALLOC F(SAS) SHR DS('T54V01H.SASHI.BTSB.PANLIB(MEM1)') REUSE"

"EXECIO * DISKR SAS(FINIS STEM IN."

ADDRESS ISPEXEC

DO I = 1 TO IN.0

CALL PROG_NAME

END

EXIT

PROG_NAME:

INT_UTIL = WORD(IN.I,1)

PROG = INT_UTIL

"FTOPEN TEMP"

"FTINCL BTSCOMP"

"VGET ZTEMPF"

"FTCLOSE"

ADDRESS TSO "SUBMIT" "'"ZTEMPF"'"

"LIBDEF ISPSLIB"

TRACE I

RETURN

Where Prog is the program name that I am reading from the member list. This
I am defining in my jcl as &prog and passing it through this FT technique .
First time the job has submitted but when it is trying to submit the second
job it is giving

IKJ56265I INPUT DATA SET T54VSDU.GCUV.ISPCTL1 NOT USABLE+

IKJ56265I THE DATA SET IS EMPTY

Can you please resolve this issue?

Mosley, George

unread,
Apr 11, 2006, 11:47:16 AM4/11/06
to
A couple of things, Sasikanth...

1. DATAID="'"T54V01H.SASHI.UTIL"'" should be
DATAID="'T54V01H.SASHI.UTIL'"

2. Your "LIBDEF ISPSLIB" statement shouldn't be inside your PROG_NAME
routine; it should be after your DO loop, just before EXIT

George

0 new messages