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

SPOOL extraction issue

574 views
Skip to first unread message

Jake anderson

unread,
May 28, 2012, 5:20:01 AM5/28/12
to
Dear List,

While Extracting Spool information using the below Rexx code I end up with


REXX code :


> IRX0255E Abend in host command SELECT or address environment routine
> ISPEXEC.
> IRX0251E user abend code 0010,Reason code 0000000.
>
> REXXPDS = "JAKE.TOOLS.REXX"
> MSGPDS = "JAKE.TOOLS.MSG"
>
> /*-------------------------------------------------------------------*/
> /* To activate the below datasets into system library. */
> /*-------------------------------------------------------------------*/
>
> "ALTLIB DEACTIVATE QUIET APPLICATION(*)"
> "ALTLIB ACTIVATE QUIET APPLICATION(EXEC) DA('"REXXPDS"')"
>
> ADDRESS "ISPEXEC"
> "LIBDEF ISPMLIB DATASET ID('"MSGPDS"')"
> IF RC \= 0 THEN
> DO
> SAY "LIBDEF ISPMLIB FAILED FOR '"MSGPDS"' .RC = "RC
> SAY ZERRLM
> EXIT
> END
>
> ADDRESS ISREDIT
> "MACRO PROCESS"
> ADDRESS ISPEXEC "CONTROL ERRORS RETURN"
> "(FLINE) = LINE .ZFIRST"
> PARSE VAR FLINE JOBNAME JOB
> JOBPOS = SUBWORD(FLINE,2,1)
> IF JOBPOS /= 'JOB' THEN
> SIGNAL JCL
> /**********************************************************************
> TO GET DATASET NAME
> **********************************************************************/
> ADDRESS ISREDIT "(DATASET) = DATASET"
> ADDRESS ISREDIT "(MEMBER) = MEMBER"
> A= DATASET||"(" ||MEMBER||")"
> Y="'"A"'"
> /**********************************************************************
> TO CHECK RECORD LENGTH OF DATASET
> **********************************************************************/
> ADDRESS ISPEXEC
> "ISREDIT MACRO (COMMAND OPTIONS)"
> "ISREDIT (DSN1) = DATASET"
> ADDRESS TSO
> DSN1 = ''''DSN1''''
> X = LISTDSI(DSN1 DIRECTORY)
> IF (SYSLRECL\='80') THEN
> SIGNAL LRECL
> /**********************************************************************
> TO SUBMIT JCL
> **********************************************************************/
> X = OUTTRAP('LOG.')
> ADDRESS TSO
> "SUB "Y""
> X = OUTTRAP('OFF')
> DO K=1 TO LOG.0
> PARSE VAR LOG.1 "JOB" JOBNAME "("JOBID")" MESSAGE
> END K
> ADDRESS ISPEXEC "VPUT (JOBID) SHARED"
> JOBDONE = 'NO'
> SUBJOBNAME = STRIP(JOBNAME,B)
> SUBJOBID = STRIP(JOBID,B)
> SUBJOB = SUBJOBNAME || "(" || SUBJOBID || ")"
> DO UNTIL JOBDONE = 'YES'
> X=OUTTRAP("OUT.")
> ADDRESS TSO "STATUS" SUBJOB
> X=OUTTRAP("OFF")
> DO K = 1 TO OUT.0
> PARSE VAR OUT.K 'JOB ' JOBNAME '(' JOBID ')' STATUS
> STATUS = STRIP(STATUS)
> IF POS('ON OUTPUT QUEUE',STATUS) > 0 THEN JOBDONE = 'YES'
> ELSE DO
> CALL MYWAIT 03
> END
> END K
> END
> /**********************************************************************
> ALLOCATING FILES USED BY SDSF
> **********************************************************************/
> OWNER=USERID()
> ADDRESS TSO
> "ALLOC F(ISFIN) TRACKS SPACE(1) REU"
> "ALLOC F(ISFOUT) NEW DELETE REU " ,
> "TRACKS SPACE(100,100) LRECL(133) RECFM(F,B,A) DSORG(PS)"
> /**********************************************************************
> SET UP COMMANDS USED BY SDSF
> **********************************************************************/
> QUEUE "OWNER "OWNER
> QUEUE "ST"
> QUEUE "FIL JOBID " JOBID
> QUEUE "AFD REFRESH"
> QUEUE "++?"
> "EXECIO" QUEUED()" DISKW ISFIN (FINIS"
> ADDRESS ISPEXEC "SELECT PGM(ISFAFD) PARM('++32,255)"
> "EXECIO * DISKR ISFOUT (FINIS STEM INPUT."
> CALL TABLE_OPEN
>
> GET_IND = 'N'
> J = 1
> DO I =1 TO INPUT.0
> IF POS("SDSF JOB DATA SET DISPLAY - JOB",INPUT.I) > 0 THEN
> DO
> I=I+2
> IF POS("DDNAME",INPUT.I)> 0 THEN
> POS_DD = POS("DDNAME",INPUT.I)
> POS_STEP = POS("StepName",INPUT.I)
> POS_DSID = POS("DSID",INPUT.I)
> MSG_LINE= SUBSTR(INPUT.I,POS_DD,POS_STEP)
> DO
> ADDRESS ISREDIT
> NOTE_LINE= "USE MACRO SC <NUMBER> TO VIEW MESSAGES PRESENT IN THE
> NOTE_LINE1= "HERE NUMBER IS THE NUMBER PRESENT BEFORE THE DDNAME"
> "ISREDIT LINE_BEFORE .ZCSR = NOTELINE" "'" NOTE_LINE "'"
> "ISREDIT LINE_BEFORE .ZCSR = NOTELINE" "'" NOTE_LINE1 "'"
> "ISREDIT LINE_BEFORE .ZCSR= MSGLINE" "'" " "||MSG_LINE "'"
> DO I=I+1 TO INPUT.0
> S= SUBSTR(INPUT.I,POS_DD,POS_STEP)
> DD_NAME= SUBSTR(INPUT.I,POS_DD,8)
> STEP_NAME= SUBSTR(INPUT.I,POS_STEP,8)
> DSID_NAME= SUBSTR(INPUT.I,POS_DSID,5)
> IF LENGTH(STRIP(S)) > 0 THEN
> /**********************************************************************
> EDITING DDNAMES AND STEPNAMES IN MESSAGE LINES OF JCL
> **********************************************************************/
> DO
> ADDRESS ISREDIT
> "ISREDIT LINE_BEFORE .ZCSR= MSGLINE" "'"J||" "||S "'"
> CNT=J
> DD=DD_NAME
> SN=STEP_NAME
> DS=DSID_NAME
> DDNAME = J || MSG_LINE
> ADDRESS ISPEXEC
> "ISPEXEC TBADD "TBNAME1" ORDER "
> J = J + 1
> END
> END
> END
> END
> END
> ADDRESS ISPEXEC
> "TBCLOSE "TBNAME1
> "ISPEXEC LIBDEF ISPTABL"
> "ISPEXEC LIBDEF ISPTLIB"
> EXIT
> /**********************************************************************
> SUBROUTINE FOR TABLE
> **********************************************************************/
> TABLE_OPEN:
> ADDRESS TSO
> TEMP = USERID()||'.MFCOE.TOOLS.SPLCHK'
> TBNAME1= "SPLCHK"
> ADDRESS ISPEXEC
> "ISPEXEC VPUT (TEMP,TBNAME1) PROFILE"
> ADDRESS TSO
> IF SYSDSN("'"TEMP"'") = 'OK' THEN
> DO
> "ALLOCATE DA('"TEMP"') FI(TEMP1) SHR"
> "FREE FI(TEMP1)"
> END
> ELSE
> /**********************************************************************
> CREATING PDS
> **********************************************************************/
> DO
> "ALLOCATE DA('"TEMP"') FI(TEMP1)",
> " NEW SPACE(20 20) TRACKS RECFM(F B) DSORG(PO) LRECL(150)",
> " BLKSIZE(1500) DIR(20)"
> "FREE FI(TEMP1)"
> END
> ADDRESS ISPEXEC
> "CONTROL ERRORS RETURN"
> "LIBDEF ISPTABL DATASET ID('"TEMP"')"
> "TBERASE "TBNAME1
> /**********************************************************************
> CREATING LIBRARY FOR TABLE
> **********************************************************************/
> ADDRESS ISPEXEC
> "LIBDEF ISPTLIB DATASET ID('"TEMP"')"
> IF RC \= 0 THEN DO
> SAY 'S-> LIBDEF FAILED ON DD ISPTLIB. RC = ' RC
> SAY "S-> DATASET NAME = '" TEMP "'"
> SAY 'S-> TERMINATING APPLICATION'
> EXIT
> END
> "LIBDEF ISPTABL DATASET ID('"TEMP"')"
> IF RC \= 0 THEN DO
> SAY 'S-> LIBDEF FAILED ON DD ISPTABL. RC = ' RC
> SAY "S-> DATASET NAME = '" TEMP "'"
> SAY 'S-> TERMINATING APPLICATION'
> EXIT
> END
> /**********************************************************************
> CREATING TABLE WITH KEYS
> **********************************************************************/
> "TBOPEN "TBNAME1
> IF RC = 8 THEN DO
> "TBCREATE "TBNAME1" KEYS(CNT) NAMES(DD SN DS) WRITE "
> END
> ELSE
> DO
> "TBCREATE "TBNAME1" KEYS(CNT) NAMES(DD SN DS) REPLACE"
> END
> RETURN
>
> /**********************************************************************
> ERROR MESSAGES FUNCTIONS DEFINITION
> **********************************************************************/
> JCL:
> ADDRESS "ISPEXEC"
> "LIBDEF ISPMLIB DATASET ID('"MSGPDS"')"
> "SETMSG MSG(PNMSG192)"
> EXIT
> LRECL:
> ADDRESS "ISPEXEC"
> "LIBDEF ISPMLIB DATASET ID('"MSGPDS"')"
> "SETMSG MSG(PNMSG193)"
> EXIT
> /**********************************************************************
> SUBROUTINE FOR WAITING
> **********************************************************************/
> MYWAIT:
> ARG SECS
> TIMEDIFF = 0
> STARTTIME = TIME('S')
> DO UNTIL TIMEDIFF >= SECS
> TIMEDIFF = TIME('S') - STARTTIME
> END
> RETURN
>


14.40.41 JOB05647 $HASP165 DEFVCTL$ ENDED AT N1 MAXCC=0000
> CN(INTERNAL)
> ISF037I SDSF SDUMP NOT TAKEN, SUPPRESSED BY
> DAE
> ISF012I SDSF ABEND USER 10 AT 09E4B662 IN MODULE ISFINIT OFFSET
> 001CF2
> SDSF ABEND USER 10 AT 09E4B662 IN MODULE ISFINIT OFFSET
> 001CF2
> ISF013I SDSF ABEND R0-R7 80000000 8000000A 00000018 00079C54 89D04CA0
> 8A26D154
> 00000000
> 00001014
> R0-R7 80000000 8000000A 00000018 00079C54 89D04CA0 8A26D154 00000000
> 00001014
> ISF014I SDSF ABEND R8-R15 00000010 00053010 0068D840 00000000 09E4B7BC
> 0068C020
> 89E49DC8
> 00000000
> R8-R15 00000010 00053010 0068D840 00000000 09E4B7BC 0068C020 89E49DC8
> 00000000
> IRX0251E User abend code 0010, reason code
> 00000000.
> IRX0255E Abend in host command SELECT or address environment routine
> ISPEXEC.
> ***
>



Environment : Z/OS : 1.13
RSU1111

Could anyone please direct me.

Jake

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

Steve Coalbran

unread,
May 28, 2012, 5:54:44 AM5/28/12
to
Hi Jake,
What is this trying to do? I don't see it can ever have worked as you cannot merge EditMacro and Exec operations in this fashion.
For an EditMacro the first statement should be a "MACRO" statement and there can be only one of these?
(almost true)... You can have ISPEXEC CONTROL statements first, like this...

/*REXX(MYEXT)*/
ADRESS ISPEXEC "CONTROL ERRORS RETURN"
ADDRESS ISREDIT
"MACRO PROCESS"
IF( RC<>0 )THEN DO
PARSE ARG dsn
ADDRESS ISPEXEC "EDIT DATASET("dsn") MACRO(MYEXT)"
EXIT
END
ELSE NOP
"(DSN) = DATASET"
. . .
etc.
. . .
"END"

TIP...
your MYWAIT function could perhaps be better achieved using ...

ADDRESS SYSCALL "SLEEP" 03



Steve Coalbran
Accredited Senior IT Specialist, Global Business Services, Application Services

IBM Svenska AB, SE 164 92 Stockholm, Sweden




> Date: Mon, 28 May 2012 14:47:59 +0530
> From: justmai...@GMAIL.COM
> Subject: [TSO-REXX] SPOOL extraction issue
> To: TSO-...@VM.MARIST.EDU

Jake anderson

unread,
May 28, 2012, 6:32:57 AM5/28/12
to
Dear Steve,

My rexx is doing Job submission and trying to extract the Spool information
but unfortunately it ended up with the error described in previous email.
This EXEC worked perfectly with my Z/OS 1.8,1.12 but here it is producing
this kind of error. This exec is used by just typing "S" at the command
line of any member.

So not sure Where Exactly is the error.

Jake

Thomas Berg

unread,
May 28, 2012, 6:49:00 AM5/28/12
to
In SDSF manual I find this for user abend 10:

0010 Explanation: SDSF was invoked in an inconsistent manner.
System Programmer Response: Check that SDSF was not invoked using an incorrect entry point, such as a
line mode invocation using an interactive entry point.



Med Vänlig Hälsning,
Thomas Berg
______________________________________________________
Thomas Berg Specialist AM/DQS SWEDBANK AB (publ)



> -----Ursprungligt meddelande-----
> Från: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] För Jake
> anderson
> Skickat: den 28 maj 2012 11:18
> Till: TSO-...@VM.MARIST.EDU
> Ämne: [TSO-REXX] SPOOL extraction issue

Thomas Berg

unread,
May 28, 2012, 6:55:14 AM5/28/12
to
I found an entry in IBM support Portal, Upgrade ZOSV1R13, Subset SDSF:


Installation Information

This section contains changes to the product's Program Directory.

1. 12/04/05 A new user abend has been added that detects when
batch program ISFAFD is run in display mode and
not in line mode as required.

User abend 10
Explanation: SDSF was invoked in an inconsistent manner.

System Programmer Response: Check that SDSF was not
invoked using an incorrect entry point, such as a line
mode invocation using an interactive entry point.




Med Vänlig Hälsning,
Thomas Berg
______________________________________________________
Thomas Berg Specialist AM/DQS SWEDBANK AB (publ)



> -----Ursprungligt meddelande-----
> Från: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] För
> Thomas Berg
> Skickat: den 28 maj 2012 12:48
> Till: TSO-...@VM.MARIST.EDU
> Ämne: [TSO-REXX] SV: [TSO-REXX] SPOOL extraction issue

Steve Coalbran

unread,
May 28, 2012, 7:54:44 AM5/28/12
to
Perhaps replace...
ADDRESS ISPEXEC "SELECT PGM(ISFAFD) PARM('++32,255)"

with

ADDRESS TSO "CALL *(ISFAFD)"

? :-/


Steve Coalbran
Accredited Senior IT Specialist, Global Business Services, Application Services

IBM Svenska AB, SE 164 92 Stockholm, Sweden




> Date: Mon, 28 May 2012 12:54:20 +0200
> From: thoma...@SWEDBANK.SE
> Subject: [TSO-REXX] SV: [TSO-REXX] SPOOL extraction issue
> To: TSO-...@VM.MARIST.EDU

Jake anderson

unread,
May 28, 2012, 10:43:09 PM5/28/12
to
Dear All,

There is no still luck with below replacement and end up with below error
message :




>
> 08.05.09 JOB05727 $HASP165 DEFVCTL$ ENDED AT N1 MAXCC=0000
> CN(INTERNAL)
> ISF037I SDSF SDUMP NOT TAKEN, SUPPRESSED BY
> DAE
> ISF012I SDSF ABEND USER 10 AT 09D20662 IN MODULE ISFINIT OFFSET
> 001CF2
> SDSF ABEND USER 10 AT 09D20662 IN MODULE ISFINIT OFFSET
> 001CF2
> ISF013I SDSF ABEND R0-R7 80000000 8000000A 00000018 000569A4 89D04CA0
> 89D02494
> 00000000
> 00001014
> R0-R7 80000000 8000000A 00000018 000569A4 89D04CA0 89D02494 00000000
> 00001014
> ISF014I SDSF ABEND R8-R15 00000010 00000080 00692840 00057FFF 09D207BC
> 00691020
> 89D1EDC8
> 00000000
> R8-R15 00000010 00000080 00692840 00057FFF 09D207BC 00691020 89D1EDC8
> 00000000
> IEA995I SYMPTOM DUMP
> OUTPUT
> USER COMPLETION
> CODE=0010
> TIME=08.05.12 SEQ=15141 CPU=0000
> ASID=002A
> PSW AT TIME OF ERROR 071C1000 89D20662 ILC 2 INTC
> 0D
> ACTIVE LOAD MODULE ADDRESS=09D1E970
> OFFSET=00001CF2
>
> NAME=ISFINIT
> DATA AT PSW 09D2065C - 00181610 0A0D90EC
> D00C188F
> AR/GR 0: 00000019/80000000 1:
> 00000000/8000000A
> 2: 00000000/00000018 3:
> 00000000/000569A4
> 4: 00000000/89D04CA0 5:
> 00000000/89D02494
> 6: 00000000/00000000 7:
> 00000000/00001014
> 8: 00000000/00000010 9:
> 00000000/00000080
> A: 00000000/00692840 B:
> 00000000/00057FFF
> ***
>
> C: 00000000/09D207BC D:
> 00000000/00691020
> E: 00000000/89D1EDC8 F:
> 00000000/00000000
> END
>

Jake

Ward Able, Grant

unread,
May 29, 2012, 3:25:56 AM5/29/12
to
Take a look at this RedBook (Implementing REXX Support in SDSF):



http://www.redbooks.ibm.com/abstracts/sg247419.html?Open







Regards - Grant.

Telephone Internal: x1496 London

Telephone External: +44 (0)207 650 1496





-----Original Message-----

From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf Of Jake anderson

Sent: 29 May 2012 03:42

To: TSO-...@VM.MARIST.EDU

Subject: Re: [TSO-REXX] SV: [TSO-REXX] SPOOL extraction issue
<BR>_____________________________________________________________

<FONT size=2><BR>

DTCC DISCLAIMER: This email and any files transmitted with it are

confidential and intended solely for the use of the individual or

entity to whom they are addressed. If you have received this email

in error, please notify us immediately and delete the email and any

attachments from your system. The recipient should check this email

and any attachments for the presence of viruses. The company

accepts no liability for any damage caused by any virus transmitted

by this email.</FONT>

Jake anderson

unread,
May 29, 2012, 3:48:35 AM5/29/12
to
Dear All,

Thanks for the reference but any pointers on my Code would be of great help.

Jake

Thomas Berg

unread,
May 29, 2012, 4:47:32 AM5/29/12
to
A complete out of the air suggestion:

Try with "ADDRESS ISPEXEC 'CONTROL DISPLAY LINE'" before ADDRESS ISPEXEC "SELECT PGM(ISFAFD) PARM('++32,255)".

If that don't work try with (additionally) removing the parm: ADDRESS ISPEXEC "SELECT PGM(ISFAFD)".



Regards,
Thomas Berg
______________________________________________________
Thomas Berg Specialist AM/DQS SWEDBANK AB (publ)



> -----Ursprungligt meddelande-----
> Från: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] För Jake
> anderson
> Skickat: den 29 maj 2012 04:42
> Till: TSO-...@VM.MARIST.EDU
> Ämne: Re: [TSO-REXX] SV: [TSO-REXX] SPOOL extraction issue

Jake anderson

unread,
May 29, 2012, 5:16:56 AM5/29/12
to
Dear All,

"Try with "ADDRESS ISPEXEC 'CONTROL DISPLAY LINE'" before ADDRESS ISPEXEC
"SELECT PGM(ISFAFD) PARM('++32,255)"."

It did not work

If that don't work try with (additionally) removing the parm: ADDRESS
ISPEXEC "SELECT PGM(ISFAFD)"

Yes it worked but only submission happened but the spool information was
not extracted.

Are there any parameters to extract the spool information ?


Jake
Message has been deleted

Gaurav Bhatnagar

unread,
Oct 7, 2012, 2:07:46 PM10/7/12
to TSO REXX Discussion List
i have been trying to find a solution to this and have come across the information that this is no more supported in the new rexx.
i was consfused since the same code used to work pretty fine in my previous firm which had older version of rexx.
browsing for the solution to this i have come across this informaion on a forum

"in my not so humble opinion that way of interfacing SDSF is pretty outdated
You issue a bunch of commands in the hope that everything will work
much better to use the REXX SDSF interface as exemplified here
http://www.ibmmainframes.com/viewtopic.php?t=57552&highlight=
( here I read the JESJCL, reading the JESMSGS would not be any different )
invoking it asn an edit macro would mean ( apart a bit of housekeeping )
to insert into the member used as work area the result of the EXECIO to the <SDSF> dataset chosen"
0 new messages