View previous topic :: View next topic
|
Author |
Message |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
Hi,
I'm trying to read the sysout of a currently executing job, but running into one issue. A Db2 bind is running in batch. Once this completes, I plan to have a rexx step calling sdsf to pull out the sysout information (sysprint) from the bind job.
Such as
DA
PRINT DATASET
PRINT 1 99999
PRINT CLOSE
This would capture the currently executing sysout.
Everything works if I point my sdsf command to ST, but fails pointing to DA. Let me show you want I'm trying to do:
Code: |
/* REXX *************************************************************/
/* Pull out information of currently executing bind job */
/* Store bind results into Db2 table Tom G. */
/********************************************************************/
rc=isfcalls('ON') /* access to sdsf */
Address SDSF "ISFEXEC ST" /* open ST panel */
lrc=rc
if lrc ¬= 0 then call error_msg
isfprefix='D2ADME1' /* set job name */
do ix=1 to JNAME.0
say 'this is JNAME.ix = 'JNAME.ix
if JNAME.ix = "D2ADME1A" then /* if job is found */
do
Say '====> Job is found'
Address SDSF "ISFACT ST TOKEN('"TOKEN.ix"') PARM(NP SA)"
lrc=rc
if lrc ¬= 0 then call error_msg
do jx=1 to isfddname.0
Say "Now reading" isfdsname.jx
"EXECIO * DISKR" isfddname.jx "(STEM line. FINIS"
Say " Lines read:" line.0
do kx = 1 to line.0
Say " line."kx "is:" line.kx
end
end
if lrc<>0 then
call error_msg
end
end
rc=isfcalls("OFF")
exit
/* Subroutine to list error messages */
error_msg:
say 'Error messages:'
say isfmsg
say isfmsg2.0
say issmsg2.1
say isfmsg2.2
exit |
The above works....but it's pointing to ST:
Address SDSF "ISFEXEC ST"
But, if I point it to a currently executing job, it fails with rc=08
Address SDSF "ISFEXEC DA"
Any idea why? My job name is D2ADME1A and it would be the only executing job at that time. Maybe it shouldn't be written this way.
Thanks, Tom
Please use the code tags to present code and data. Coded for you this time. |
|
Back to top |
|
 |
Joerg.Findeisen
Senior Member

Joined: 15 Aug 2015 Posts: 1371 Location: Bamberg, Germany
|
|
|
|
There is RGEN to generate REXX for a lot of SDSF tasks. You could have a look there first. |
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
I can't remember the details, but I remember having to use the ST command and then scan for the active job, to do what you attempt. By the way, you have the ISFPREFIX before the SDSF ST command. Anything in the ISFMSG list? |
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
Part of my program, note the queue.ji='EXECUTION' statement.
Code: |
n=isfcalls('ON')
isfprefix=mvsvar('symdef','jobname') /* set isfprefix = jobname */
Address SDSF
"ISFEXEC ST"
if rc<>0 then call SdsfErr 'ST'
do ji=1 to jobid.0 until queue.ji='EXECUTION' /* locate me */
end
"ISFACT ST TOKEN('"TOKEN.ji"') PARM(NP SA)"
if rc<>0 then call SdsfErr 'ST NP SA'
address tso
"EXECIO * DISKR" isfddname.4 "(STEM line. FINIS)"
say time() line.0 'lines read from list' |
|
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
Thanks for the RGEN command, Joerg. This is actually how I created my original.
Willy, I think this might work. My end goal is to capture the current sysout I'm in. So I will change:
"ISFEXEC ST"
to
"ISFEXEC DA"
When I run this, I get a rc=8:
Code: |
/* rexx */
trace r
n=isfcalls('ON')
isfprefix=mvsvar('symdef','D2ADME1S') /* set isfprefix = jobname */
Address SDSF
"ISFEXEC DA"
if rc<>0 then call SdsfErr 'ST'
do ji=1 to jobid.0 until queue.ji='EXECUTION' /* locate me */
end
"ISFACT ST TOKEN('"TOKEN.ji"') PARM(NP SA)"
if rc<>0 then call SdsfErr 'ST NP SA'
address tso
"EXECIO * DISKR" isfddname.4 "(STEM line. FINIS)"
say time() line.0 'lines read from list'
SdsfErr:
say "at the end"
.
.
.
5 *-* n=isfcalls('ON')
>>> "0"
7 *-* isfprefix=mvsvar('symdef','D2ADME1S') /* set isfprefix = jobname */
>>> ""
8 *-* Address SDSF
9 *-* "ISFEXEC DA"
>>> "ISFEXEC DA"
11 *-* if rc<>0
>>> "0"
12 *-* do ji=1 to jobid.0 until queue.ji='EXECUTION' /* locate me */
>>> "1"
>>> "2"
13 *-* end
12 *-* do ji=1 to jobid.0 until queue.ji='EXECUTION' /* locate me */
>>> "0"
13 *-* end
12 *-* do ji=1 to jobid.0 until queue.ji='EXECUTION' /* locate me */
>>> "0"
15 *-* "ISFACT ST TOKEN('"TOKEN.ji"') PARM(NP SA)"
>>> "ISFACT ST TOKEN('TOKEN.3') PARM(NP SA)"
+++ RC(8) +++
16 *-* if rc<>0
>>> "1"
*-* then
*-* call SdsfErr 'ST NP SA'
>>> "ST NP SA"
22 *-* SdsfErr:
23 *-* say "at the end"
>>> "at the end"
at the end
|
Any idea why the RC=8?
Thanks, Tom[/code] |
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
Ok, the light bulb just went on. I see I can still us "ST" and as you pointed out, look for "execution." Let me work on this. thx |
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
Thanks Willy, I understand what's going on. This was a big help.
Tom |
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
One more question....in my rexx, I have the job name. It's possible this job name could change. Is there a way to find out the job name that this rexx exec is executing under?
Thanks, Tom |
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
Indeed: isfprefix=mvsvar('symdef','jobname') |
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
Ahhh....I was replacing jobname with the actual job. Got it. thanks! |
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
Willy,
The first job will bind the db2 package. The second step will pull in the rexx to read the sysout…and build an insert statement into a Db2 table. In theory, this should work. But, this call:
"ISFACT ST TOKEN('"TOKEN.ji"') PARM(NP SA)"
…fails, as if it cannot find it.
Code: |
//STEP01 EXEC PGM=IKJEFT01,DYNAMNBR=20
//STEPLIB DD DSN=MCI.DB.D2T0.SDSNLOAD,DISP=SHR
//REPORT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*,DCB=BLKSIZE=2420
//SYSTSIN DD *
DSN SYSTEM(D2T0)
REBIND PACKAGE(D2ADME1.CLASS1.(VERSION1)) EXPLAIN(YES)+
DBPROTOCOL(DRDA) APRETAINDUP(YES) APREUSE(NO)
/*
//STEP02 EXEC PGM=IKJEFT1B,TIME=NOLIMIT,DYNAMNBR=20,REGION=64M,
// PARM='%BINDSDSF'
//STEPLIB DD DISP=SHR,DSN=MCI.DB.D2T0.SHRD.SDSNEXIT
// DD DISP=SHR,DSN=MCI.DB.D2T0.SDSNEXIT
// DD DISP=SHR,DSN=MCI.DB.D2T0.SDSNLOAD
//SYSEXEC DD DISP=SHR,DSN=D2ADME1.BIND.ISPCLIB
//SYSTSIN DD DUMMY
//SYSTSPRT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
|
Here’s sdsf:
Code: |
PREFIX=D2ADME1W DEST=(ALL) OWNER=* SORT=JOBNAME/A SYSNAME=*
NP JOBNAME JobID Max-RC Owner Prty Queue C P
D2ADME1W JOB74252 CC 0000 D2ADME1 1 PRINT E 11
D2ADME1W JOB74264 CC 0000 D2ADME1 1 PRINT E 11
D2ADME1W JOB74563 CC 0000 D2ADME1 1 PRINT E 11
|
Trace r shows this:
Code: |
DSNT275I -D2T0 DSNTBRB2 REBIND OPTIONS FOR
PACKAGE = MCD2T0.D2ADME1.CLASS1.(VERSION1)
QUERYACCELERATION
GETACCELARCHIVE
ACCELERATOR
CONCENTRATESTMT NO
ACCELERATIONWAITFORDATA
DSNT232I -D2T0 SUCCESSFUL REBIND FOR
PACKAGE = MCD2T0.D2ADME1.CLASS1.(VERSION1)
DSN
END
ACF0C038 ACF2 LOGONID ATTRIBUTES HAVE REPLACED DEFAULT USER ATTRIBUTES
10 *-* n=isfcalls('ON') /* connect to sdsf */
>>> "0"
12 *-* isfprefix=mvsvar('symdef','jobname')
>>> "D2ADME1W"
14 *-* Address SDSF
15 *-* "ISFEXEC ST"
>>> "ISFEXEC ST"
17 *-* "ISFACT ST TOKEN('"TOKEN.1"') PARM(NP SA)"
>>> "ISFACT ST TOKEN('zDsjAhAcEpKEccHBUMXwQPx1wdXsxdxAzenKczABA4EAJgQ1lFXxTg0QBw
MSYBA4EAJgQ1Mh0FJNI=') PARM(NP SA)"
18 *-* say 'this is isfprefix = 'isfprefix
>>> "this is isfprefix = D2ADME1W"
this is isfprefix = D2ADME1W
19 *-* say 'this is jname.1 = 'jname.1
>>> "this is jname.1 = D2ADME1W"
this is jname.1 = D2ADME1W
20 *-* say 'this is jobid.1 = 'jobid.1
>>> "this is jobid.1 = JOB74252"
this is jobid.1 = JOB74252
21 *-* say 'this is jname.1 = 'jname.2
>>> "this is jname.1 = D2ADME1W"
this is jname.1 = D2ADME1W
22 *-* say 'this is jobid.1 = 'jobid.2
>>> "this is jobid.1 = JOB74264"
this is jobid.1 = JOB74264
23 *-* say 'this is jname.1 = 'jname.3
>>> "this is jname.1 = JNAME.3"
this is jname.1 = JNAME.3
24 *-* say 'this is jobid.1 = 'jobid.3
>>> "this is jobid.1 = JOBID.3"
this is jobid.1 = JOBID.3
25 *-* say 'this is jname.1 = 'jname.4
>>> "this is jname.1 = JNAME.4"
this is jname.1 = JNAME.4
26 *-* say 'this is jobid.1 = 'jobid.4
>>> "this is jobid.1 = JOBID.4"
this is jobid.1 = JOBID.4
27 *-* say 'this is jname.1 = 'jname.5
>>> "this is jname.1 = JNAME.5"
this is jname.1 = JNAME.5
28 *-* say 'this is jobid.1 = 'jobid.5
>>> "this is jobid.1 = JOBID.5"
this is jobid.1 = JOBID.5
30 *-* if rc<>0
>>> "0"
31 *-* do ji=1 to jobid.0 until queue.ji='EXECUTION' /* location bind job */
>>> "1"
>>> "2"
32 *-* end /* if queue = execution, this is running */
31 *-* do ji=1 to jobid.0 until queue.ji='EXECUTION' /* location bind job */
>>> "0"
32 *-* end /* if queue = execution, this is running */
31 *-* do ji=1 to jobid.0 until queue.ji='EXECUTION' /* location bind job */
>>> "0"
34 *-* "ISFACT ST TOKEN('"TOKEN.ji"') PARM(NP SA)"
>>> "ISFACT ST TOKEN('TOKEN.3') PARM(NP SA)"
+++ RC(8) +++
35 *-* if rc<>0
>>> "1"
*-* then
*-* call SdsfErr 'ST NP SA'
>>> "ST NP SA"
46 *-* SdsfErr:
47 *-* say ' '
>>> " "
48 *-* say 'Error messages:'
>>> "Error messages:"
Error messages:
49 *-* say isfmsg
>>> ""
|
For some reason, it doesn’t seem to be finding the sysout. Do you see anything in the rexx code as to why it cannot find it?
Thanks, Tom |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2608 Location: Silicon Valley
|
|
|
|
I think this means that the value of jobid.0 is two.
Code: |
31 *-* do ji=1 to jobid.0 until queue.ji='EXECUTION' /* location bind job */
>>> "1"
>>> "2" |
And if you compare lines 17 and 34 of the trace, you can see that on line 17, the token.1 value is actually a pretty long character string, but on line 34 the variable seems to be an uninitialized variable.
On line 31, it looks like you are trying to skip some items until you find some jobs that are executing. But there are only two lines total and none are EXECUTION. For that reason, variable JI has incremented beyond the max of JOBID.0.
You should only execute line 34 if JI is still within the max of jobid.0 |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2608 Location: Silicon Valley
|
|
|
|
I think you can do what you want without using SDSF.
I suggest that in step two, add a DD statement that refers to the output file from the first step:
Code: |
//BINDIN DD DSN=*.STEP1.SYSPRINT |
And in your rexx program, use EXECIO to read from BINDIN. (I did not try this myself, so you may need to experiment or additional DD parameters) |
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
looking at your trace, you have :
"ISFEXEC ST"
immediately folowed by
"ISFACT ST TOKEN('"TOKEN.1"') PARM(NP SA)"
I cycle through the stem from the ST command before doing the ISFACT:
"ISFEXEC ST"
do ji=1 to jobid.0 until queue.ji='EXECUTION' /* locate me */
end
"ISFACT ST TOKEN('"TOKEN.ji"') PARM(NP SA)" |
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
Just looking through some of my old stuff, you can use the ISFFILTER variables to avoid the loop. Note the use of 'token.1' in the ISFACT command.
Code: |
isfprefix=mvsvar('symdef','jobname') /* set isfprefix = jobname */
isffilter='QUEUE EQ EXECUTION'
isffiltermode='AND'
Address SDSF
"ISFEXEC ST"
if rc<>0 then ...
"ISFACT ST TOKEN('"TOKEN.1"') PARM(NP SA)"
if rc<>0 then ... |
|
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
Pedro,
I did try your suggestion:
Code: |
//STEP1 EXEC PGM=IKJEFT01,DYNAMNBR=20
//STEPLIB DD DSN=MCI.DB.D2T0.SDSNLOAD,DISP=SHR
//REPORT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*,DCB=BLKSIZE=2420
//SYSTSIN DD *
DSN SYSTEM(D2T0)
REBIND PACKAGE(D2ADME1.CLASS1.(VERSION1)) EXPLAIN(YES)+
DBPROTOCOL(DRDA) APRETAINDUP(YES) APREUSE(NO)
/*
//STEP02 EXEC PGM=IKJEFT1B,TIME=NOLIMIT,DYNAMNBR=20,REGION=64M,
// PARM='%BINDSDSF'
//STEPLIB DD DISP=SHR,DSN=MCI.DB.D2T0.SHRD.SDSNEXIT
// DD DISP=SHR,DSN=MCI.DB.D2T0.SDSNEXIT
// DD DISP=SHR,DSN=MCI.DB.D2T0.SDSNLOAD
//SYSEXEC DD DISP=SHR,DSN=D2ADME1.BIND.ISPCLIB
//SYSTSIN DD DUMMY
//BINDIN DD DSN=*.STEP1.SYSPRINT
//SYSTSPRT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
.
.
.
IEF344I D2ADME1W STEP02 BINDIN - ALLOCATION FAILED DUE TO DATA FACILITY SYSTEM ERROR
IGD17102I CATALOG ERROR IN DEFINING NONVSAM DATA SET
D2ADME1.D2ADME1W.JOB15672.D0000103.?
RETURN CODE IS 144 REASON CODE IS 14 IGG0CLEG
IGD306I UNEXPECTED ERROR DURING IGG0CLEG PROCESSING
RETURN CODE 144 REASON CODE 14
THE MODULE THAT DETECTED THE ERROR IS IGDVTSCU
SMS MODULE TRACE BACK - VTSCU VTSCT VTSCR SSIRT
SYMPTOM RECORD CREATED, PROBLEM ID IS IGD00659
|
Willy,
Not sure why I cannot get this to work…so I tried your updated suggestion to avoid the loop. Here’s what I used:
Code: |
/* REXX **********************************************
trace r
n=isfcalls('ON')
isfprefix=mvsvar('symdef','jobname')
isffilter = 'QUEUE EQ EXECUTION'
isffiltermode='AND'
Address SDSF
"ISFEXEC ST"
say 'this is rc ST = 'rc
Address SDSF
"ISFACT ST TOKEN('"TOKEN.1"') PARM(NP SA)"
say 'this is rc TOKEN = 'rc
exit
.
.
.
.
4 *-* n=isfcalls('ON')
>>> "0"
6 *-* isfprefix=mvsvar('symdef','jobname')
>>> "D2ADME1W"
7 *-* isffilter = 'QUEUE EQ EXECUTION'
>>> "QUEUE EQ EXECUTION"
8 *-* isffiltermode='AND'
>>> "AND"
9 *-* Address SDSF
10 *-* "ISFEXEC ST"
>>> "ISFEXEC ST"
11 *-* say 'this is rc ST = 'rc
>>> "this is rc ST = 0"
this is rc ST = 0
13 *-* Address SDSF
14 *-* "ISFACT ST TOKEN('"TOKEN.1"') PARM(NP SA)"
>>> "ISFACT ST TOKEN('TOKEN.1') PARM(NP SA)"
+++ RC(8) +++
15 *-* say 'this is rc TOKEN = 'rc
>>> "this is rc TOKEN = 8"
this is rc TOKEN = 8
17 *-* exit
|
From what I can tell, the ST command is working, but when it tries to pull off information from the 1st row being returned, it cannot find anything? I did look up isffiltermode…”to specify the AND or OR relationship between filters.” Is this performing an AND between EXECUTION and the job name of D2ADME1W?
Thanks, Tom |
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
Strange, I copy/pasted your code and it ran for me.
The isffiltermode is really just in preparation for if you later decide to add more conditions. You can probably leave it out, I keep it in just in case.
2 things
- I assume that you can browse the output afterwards ok in the ST panel?
- Add this to show error messages:
Code: |
if rc<>0 then do
say 'error:' isfmsg
say isfdisplay
do i=1 to isfmsg2.0
say isfmsg2.i
end
end |
|
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
Could you have some other filter set, like sysname?
The 'say isfdisplay' should tell you. Mayube put that just after the 1st ST command. |
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
Here's what I ran:
Code: |
/* REXX ****************************************************
n=isfcalls('ON')
isfprefix=mvsvar('symdef','jobname')
isffilter = 'QUEUE EQ EXECUTION'
isffiltermode='AND'
Address SDSF
"ISFEXEC ST"
say 'this is rc ST = 'rc
Address SDSF
"ISFACT ST TOKEN('"TOKEN.1"') PARM(NP SA)"
if rc<>0 then do
say 'error rc:' rc
say 'error:' isfmsg
say isfdisplay
do i=1 to isfmsg2.0
say isfmsg2.i
end
end
exit
|
It failed with:
Code: |
this is rc ST = 0
error rc: 8
error:
PREFIX=D2ADME1W DEST=(ALL) OWNER=D2ADME1 SYSNAME= FILTERS=1
ISF754I Command 'PREFIX D2ADME1W' generated from associated variable ISFPREFIX.
ISF776I Processing started for action 1 of 1.
ISF746E Action request rejected, row token invalid.
ISF767I Request completed.
READY
|
Invalid token?
Tom |
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
The row token is created by the ISFEXEC command and must be passed unmodified to SDSF on the ISFACT command. Some of the conditions causing the token to become invalid are:
- The token has been modified or contains an invalid character
- The token does not correspond to the display being modified. For example, the token was generated for a row on the H panel but is being used on the O panel.
- The token was generated on a different level of SDSF than the one currently being run.
- The token was generated for a different use ID than the one performing the action. |
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
That makes absolutely no sense. I just read the message description, and I cannot see how it applies to this situation.
This is a long shot, I compared the output of your isfdisplay with mine and the only significant difference I could see, is that I have OWNER=*.
Try
- add isfowner='*' after the isfprefix= setting.
- add say 'token:' token.1 after the 1st ST command.
- add say isfdisplay after the 1st ST command, |
|
Back to top |
|
 |
tom.glaser
New User
Joined: 08 Dec 2020 Posts: 15 Location: US
|
|
|
|
This is going to confuse the issue....I did some testing. Here's a job that works....first step is a non-db2 job:
Code: |
READY
END
ACF0C038 ACF2 LOGONID ATTRIBUTES HAVE REPLACED DEFAULT USER ATTRIBUTES
token.1: zDsjAhAcEpKEccHBUMXwQPx1wdXsxdxAze/VWCwBA4EAJgQ1lFXxTg0QBwANJiOExNLB3NTEZEDF+0LE1bVyQMXmTcTAFCeCNQQ2MyUBA4EAJgQ1DB0JB/s=
isfdisplay: PREFIX=D2ADME1Q DEST=(ALL) OWNER=* SYSNAME= FILTERS=1
this is second token display = zDsjAhAcEpKEccHBUMXwQPx1wdXsxdxAze/VWCwBA4EAJgQ1lFXxTg0QBwANJiOExNLB3NTEZEDF+0LE1bVyQMXmTcTAFCeCNQQ2
MyUBA4EAJgQ1DB0JB/s=
2token1: zDsjAhAcEpKEccHBUMXwQPx1wdXsxdxAze/VWCwBA4EAJgQ1lFXxTg0QBwANJiOExNLB3NTEZEDF+0LE1bVyQMXmTcTAFCeCNQQ2MyUBA4EAJgQ1DB0JB/s=
isfdisplay: PREFIX=D2ADME1Q DEST=(ALL) OWNER=* SYSNAME= FILTERS=1
16:29:04 41 lines read from list
|
If I run the first step against db2 (perform a bind), then it fails:
Code: |
ACF0C038 ACF2 LOGONID ATTRIBUTES HAVE REPLACED DEFAULT USER ATTRIBUTES
token.1: TOKEN.1
isfdisplay: PREFIX=D2ADME1Q DEST=(ALL) OWNER=* SYSNAME= FILTERS=1
this is second token display = TOKEN.1
2token1: TOKEN.1
isfdisplay: PREFIX=D2ADME1Q DEST=(ALL) OWNER=* SYSNAME= FILTERS=1
error rc: 8
error:
PREFIX=D2ADME1Q DEST=(ALL) OWNER=* SYSNAME= FILTERS=1
ISF754I Command 'OWNER *' generated from associated variable ISFOWNER.
ISF754I Command 'PREFIX D2ADME1Q' generated from associated variable ISFPREFIX.
ISF776I Processing started for action 1 of 1.
ISF746E Action request rejected, row token invalid.
ISF767I Request completed.
EXECIO "ddname" positional parameter is not valid.
16:29:13 LINE.0 lines read from list
33 +++ do kx = 1 to line.0
Error running WILLY1, line 33: Bad arithmetic conversion
|
It seems when the first step is db2, then the token fails. If I go against a non-db2 step, then it works. Not sure why it would matter.
Tom |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2608 Location: Silicon Valley
|
|
|
|
Sorry, I am retired and no longer have access to z/OS. I cannot verify my suggestions.
On STEP1, trying making SYSPRINT a temporary data set and DISP=(,PASS) |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2608 Location: Silicon Valley
|
|
|
|
FYI. in my earlier post, I noted that it appears that you do not have any jobs in EXECUTION status. You should loop through all of the responses and display the value of the QUEUE variable for every job. And verify that QUEUE is the right variable to use. |
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 744 Location: Denmark
|
|
|
|
I'll go with Pedro's latest post. How does it look when you do a display in SDSF? ST , then question mark in front. |
|
Back to top |
|
 |
|