View previous topic :: View next topic
Author
Message
vasanthz Global Moderator Joined: 28 Aug 2007Posts: 1742 Location: Tirupur, India
Hello,
I am trying to run a REXX program that requires ISPF allocations to run.
When I run the below JCL,
Code:
//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD DATA,DLM='##'
/* REXX */
SAY 'THIS IS NOT THE ACTUAL REXX PROGRAM IM TRYING TO RUN'
EXIT
##
//SYSUT2 DD DSN=&&TEMP(TESTIT),DISP=(NEW,PASS,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(5,5,20),RLSE),
// DCB=(BLKSIZE=6160,LRECL=80,RECFM=FB,DSORG=PO)
//ISPFBATC EXEC PGM=IKJEFT1A,DYNAMNBR=200
//SYSEXEC DD DSN=&&TEMP,DISP=(SHR,PASS)
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//ISPMLIB DD DSN=SOMTHING.MESSAGES,DISP=SHR
// DD DSN=SOMTHING.MESSAGES,DISP=SHR
//ISPTLIB DD DSN=SOMTHING.TABLES,DISP=SHR
// DD DSN=SOMTHING.TABLES,DISP=SHR
//SYSEDIT DD SPACE=(CYL,(1,5)),UNIT=SYSDA
//SYSEDIT2 DD SPACE=(CYL,(1,5)),UNIT=SYSDA
//SYSUT1 DD SPACE=(CYL,(1,1)),UNIT=SYSDA
//SYSUT2 DD SPACE=(CYL,(1,1)),UNIT=SYSDA
//SYSUT3 DD SPACE=(CYL,(1,1)),UNIT=SYSDA
//SYSUT4 DD SPACE=(CYL,(1,1)),UNIT=SYSDA
//ISPPROF DD UNIT=SYSDA,
// DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=3120),
// SPACE=(TRK,(5,0,5))
//ISPPLIB DD UNIT=SYSDA,
// DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=3120),
// SPACE=(TRK,(5,0,5))
//ISPSLIB DD UNIT=SYSDA,
// DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=3120),
// SPACE=(TRK,(5,0,5))
//ISPLLIB DD UNIT=SYSDA,
// DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=3120),
// SPACE=(TRK,(5,0,5))
//ISPLOG DD UNIT=SYSDA,
// DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=3120),
// SPACE=(TRK,(5,0))
//SYSTSIN DD *
ISPSTART CMD(TESTIT)
I get the below abend on SYSTSPRT.
Code:
READY
ISPSTART CMD(TESTIT)
Abend 0C1000 hex occurred processing command 'TESTIT '.
ISPD110 CMD abended
'TESTIT' terminated abnormally.
However if I remove the IEBGENER step and change this statement
Code:
//SYSEXEC DD DSN=&&TEMP,DISP=(SHR,PASS)
to
Code:
//SYSEXEC DD DSN=SOME.CATALOGED.PDS,DISP=SHR
The JCL works fine. :S
Could you please let me know what could be the problem when I try to run it with the IEBGENER step.
Also tried to change the SYSUT2 in IEBGENER to a catalogued PDS and refer it as SYSEXEC in IKJEFT1A step, but still same abend.
For some reason the JCL does not like allocating a PDS and using the PDS in the same job, or im doing some silly mistake in allocating the PDS.
Please let me know your thoughts. Thanks for viewing.
Back to top
enrico-sorichetti Superior Member Joined: 14 Mar 2007Posts: 10872 Location: italy
works for me
Code:
****** ***************************** Top of Data ******************************
000001 //ENRICO1 JOB NOTIFY=&SYSUID,
000002 // REGION=0M,
000003 // MSGLEVEL=(1,1),CLASS=A,MSGCLASS=X
000004 //*
000005 //S1 EXEC PGM=IEBGENER
000006 //SYSPRINT DD SYSOUT=*
000007 //SYSIN DD DUMMY
000008 //SYSUT1 DD DATA,DLM=$$
000009 /* REXX */
000010 trace "o"
000011 say "hallo hallo, from batch ISPF"
000012 exit
000013 $$
000014 //SYSUT2 DD DISP=(,PASS),
000015 // DSN=&&SYSPROC(TEST01),
000016 // UNIT=SYSDA,SPACE=(CYL,(1,0,1)),
000017 // DCB=(RECFM=FB,LRECL=80)
000018 //*
000019 //S2 EXEC PGM=IKJEFT1A
000020 //SYSPROC DD DISP=(OLD,PASS),
000021 // DSN=&&SYSPROC
000022 //ISPPROF DD DISP=(,PASS),
000023 // DSN=&&ISPPROF,
000024 // UNIT=SYSDA,SPACE=(CYL,(1,0,1)),
000025 // DCB=(RECFM=FB,LRECL=80)
000026 //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU
000027 //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU
000028 //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSLIB
000029 //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU
000030 //SYSPRINT DD SYSOUT=*
000031 //SYSTSPRT DD SYSOUT=*
000032 //SYSTSIN DD *
000033 ISPSTART CMD(TEST01)
****** **************************** Bottom of Data ****************************
Back to top
vasanthz Global Moderator Joined: 28 Aug 2007Posts: 1742 Location: Tirupur, India
Enrico, Thanks for testing.
It does not work for me whenever im trying to create a PDS and run the REXX in same job :S
Back to top
enrico-sorichetti Superior Member Joined: 14 Mar 2007Posts: 10872 Location: italy
did You try to run my snippet asis ??
Back to top
vasanthz Global Moderator Joined: 28 Aug 2007Posts: 1742 Location: Tirupur, India
Actually I changed the ISPPLIB, ISPLLIB datasets on initial run.
Now I ran it "as is" and it works GREAT.!!
only a minor warning,
Code:
Log file allocation error - ISPF will operate without a log data set.
but I guess I could correct that.
Again, Thanks a lot
Back to top
enrico-sorichetti Superior Member Joined: 14 Mar 2007Posts: 10872 Location: italy
no reason to allocate empty dataset...
for the ispf libraries it is ALWAYS better to user the proper ones
Back to top
vasanthz Global Moderator Joined: 28 Aug 2007Posts: 1742 Location: Tirupur, India
Code:
000026 //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU
000027 //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU
000028 //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSLIB
000029 //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU
Actually I have not come across these datasets, everytime when I try to code a ISPF batch program, I used to refer TSO ISRDDN and code down the dataset names for each DD. Your snippet is generic and slick.!
Back to top
PeterHolland Global Moderator Joined: 27 Oct 2009Posts: 2481 Location: Netherlands, Amstelveen
Code:
//ISPLLIB DD UNIT=SYSDA,
// DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=3120),
// SPACE=(TRK,(5,0,5))
IPLLIB is a load library, and will have other DCB parameters then you
used.
[/code]
Back to top
vasanthz Global Moderator Joined: 28 Aug 2007Posts: 1742 Location: Tirupur, India
Ya you are right Peter,
I did not notice it, but it did not give an error though.
Back to top
PeterHolland Global Moderator Joined: 27 Oct 2009Posts: 2481 Location: Netherlands, Amstelveen
Probably the 0C1000 was a result of that.
Back to top
don.leahy Active Member Joined: 06 Jul 2010Posts: 765 Location: Whitby, ON, Canada
A valid ISPTLIB is required by ISPF in order for it to initialize properly. If the ISPPROF is empty (or not pre-allocated as it is in this case) ISPF uses ISPTLIB to generate a default ISPF profile to be used by the session.
If I recall correctly, it does this by retrieving ISPSPROF and ISPPROF from the ISPTLIB, so it is critical that those two members be available when the session starts.
Back to top
enrico-sorichetti Superior Member Joined: 14 Mar 2007Posts: 10872 Location: italy
just checked,
even if logically wrong , an fb 80 ISPLLIB is irrelevant
and an empty ISPTLIB will just give a 998 return code
with the message
Code:
ISPV010 Profile not loaded -/-Profile table 'ISPSPROF' not read. Table service RC=8
I just run another quick test and found that the only library that have to be there NON EMPTY are
Code:
000077 //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU
000081 //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU
an empty message library will end in a user abend 999
Back to top
vasanthz Global Moderator Joined: 28 Aug 2007Posts: 1742 Location: Tirupur, India
Thanks Peter,Don,Enrico for your thoughts & ideas.
ISPMLIB & ISPTLIB must have data - got it.
Back to top
Please enable JavaScript!