| Author |
Message |
vasanthz
New User
Joined: 28 Aug 2007 Posts: 15 Location: Chennai
|
|
|
|
Hi,
There are about hundreds of CICS jobs that run in the spool,
like this....
| Code: |
Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF STATUS DISPLAY ALL CLASSES LINE 1-18 (639)
COMMAND INPUT ===> SCROLL ===> CSR
PREFIX=CICST* DEST=(ALL) OWNER=* SORT=Pos/A SYSNAME=
NP JOBNAME JobID Owner Prty Queue C Pos Max-RC SAff ASys S
CICSTBD STC02452 TCICS 15 EXECUTION MVSK MVSK
CICSTBL STC02453 TCICS 15 EXECUTION MVSK MVSK
CICSTDA STC02454 TCICS 15 EXECUTION MVSK MVSK
CICSTDD STC02464 TCICS 15 EXECUTION MVSK MVSK
CICSTD4 STC02472 TCICS 15 EXECUTION MVSK MVSK
CICSTD5 STC02473 TCICS 15 EXECUTION MVSK MVSK
CICSTD9 STC02478 TCICS 15 EXECUTION MVSK MVSK
CICSTD6 STC02474 TCICS 15 EXECUTION MVSK MVSK
CICSTD1 STC02468 TCICS 15 EXECUTION MVSK MVSK
CICSTD2 STC02469 TCICS 15 EXECUTION MVSK MVSK
CICSTD8 STC02476 TCICS 15 EXECUTION MVSK MVSK
CICSTDE STC02467 TCICS 15 EXECUTION MVSK MVSK
CICSTXS STC02488 TCICS 15 EXECUTION MVSK MVSK
CICSTHO STC02485 TCICS 15 EXECUTION MVSK MVSK
CICSTDX STC24247 TCICS 15 EXECUTION MVSK MVSK
CICSTSP STC31825 TCICS 15 EXECUTION MVSK MVSK
CICSTHN STC06087 TCICS 15 EXECUTION MVSK MVSK
|
If i want to extract all the JESMSGs of all the jobs, then could you please let me know how this can be done..
I tried the below code, but I was able to get only one job details,i.e. the details of the second job alone.
| Code: |
/*REXX*/
ADDRESS TSO
"ALLOC F(ISFIN) TRACKS SPACE(1) REU" /* USED BY SDSF */
"ALLOC F(ISFOUT) NEW DELETE REU " , /* USED BY SDSF */
"TRACKS SPACE(100,100) LRECL(133) RECFM(F,B,A) DSORG(PS)"
"ALLOC F(TEMPPRT) DA('XK89.SDSF') SHR"
QUEUE "PRE CICST*" /* SDSF COMMANDS IN BATCH*/
QUEUE "ST"
QUEUE "FIND 'JESMSG'"
QUEUE "PRINT FILE TEMPPRT " /* PRINT TO TEMP DATASET */
QUEUE "PRINT 1 999999"
QUEUE "ST"
QUEUE "DOWN 1"
QUEUE "++S" /* BROWSE MSGUSR DATASET */
QUEUE "PRINT FILE TEMPPRT " /* PRINT TO TEMP DATASET */
QUEUE "PRINT 1 999999"
QUEUE "PRINT CLOSE"
QUEUE "END"
QUEUE "EXIT"
"EXECIO" QUEUED()" DISKW ISFIN (FINIS" /* INPUT TO SDSF BATCH */
ADDRESS ISPEXEC "SELECT PGM(ISFAFD) PARM('++32,255)" /* INVOKE SDSF */
EXIT |
Also gone through other threads, but could not find, how to find the number of jobs currently running in the spool.
Thanks in advance. |
|
| Back to top |
|
 |
References
|
Posted: Fri Apr 18, 2008 12:54 am Post subject: Re: |
 |
|
|
 |
Splitted: Fri Apr 18, 2008 1:16 am by William Thompson From Topic Rexx to find a string from a job in the sdsf. (CLIST & REXX) |
dick scherrer
Global Moderator
Joined: 23 Nov 2006 Posts: 5938 Location: 221 B Baker St
|
|
|
|
Hello,
What we used to do (in an sdsf session) was issue a "PRINT ODSN dsn" that opened an output dataset. Then when we selected output, we just issued "PRINT". When we had printed what we wanted, we issued "PRINT CLOSE" which closed the dataset.
I believe that your "code" is writing over the output dataset each time you specify PRINT, so the list PRINT is all that will be in the output.
This is from memory, so i hope i'm close. . . |
|
| Back to top |
|
 |
vasanthz
New User
Joined: 28 Aug 2007 Posts: 15 Location: Chennai
|
|
|
|
I have progressed slightly in the situation, by using a loop logic,
| Code: |
/*REXX*/
ADDRESS TSO
DO I = 0 TO 1 /*I TO READ TWO JOBS*/
"ALLOC F(ISFIN) TRACKS SPACE(1) REU" /* USED BY SDSF */
"ALLOC F(ISFOUT) NEW DELETE REU " , /* USED BY SDSF */
"TRACKS SPACE(100,100) LRECL(133) RECFM(F,B,A) DSORG(PS)"
"ALLOC F(TEMPPRT) DA('XK89.SDSF') SHR"
"ALLOC F(ACCUM) DS('XK89.ACCUM') MOD"
QUEUE "PRE CICST*" /* SDSF COMMANDS IN BATCH*/
QUEUE "ST"
QUEUE "DOWN '"I"'"
QUEUE "++S" /* BROWSE MSGUSR DATASET */
QUEUE "PRINT FILE TEMPPRT " /* PRINT TO TEMP DATASET */
QUEUE "PRINT 1 999999"
QUEUE "PRINT CLOSE"
QUEUE "END"
QUEUE "EXIT"
"EXECIO" QUEUED()" DISKW ISFIN (FINIS" /* INPUT TO SDSF BATCH */
ADDRESS ISPEXEC "SELECT PGM(ISFAFD) PARM('++32,255)" /* INVOKE SDSF */
"EXECIO * DISKR TEMPPRT (FINIS STEM IN."
"EXECIO * DISKW ACCUM (FINIS STEM IN."
END
EXIT |
But the variable I in QUEUE "DOWN '"I"'" line is not getting resolved.
I have tried moving around " and ' but still cannot progress further.
Could you please show me some light in the tunnel please.
Thanks in advance |
|
| Back to top |
|
 |
acevedo
Active User
Joined: 11 May 2005 Posts: 249 Location: Spain
|
|
|
|
in SDSF if I type
i get
| Code: |
INVALID SCROLL AMOUNT |
so instead type DOWN 1 (without quotes), so change
to
hth |
|
| Back to top |
|
 |
acevedo
Active User
Joined: 11 May 2005 Posts: 249 Location: Spain
|
|
|
|
| btw, I have a similar program to look for messages IEFC001I and IEFC002I in JESYSMSG... previous to my program SDSF is downloaded (with some conditions) and this file is the input to the program wich 'fetchs' in SDSF using Jobname and Jobid. |
|
| Back to top |
|
 |
vasanthz
New User
Joined: 28 Aug 2007 Posts: 15 Location: Chennai
|
|
|
|
Hi acevedo,
Many thanks for the correction, the variable I resolves properly
BTW. This REXX code was taken from a post by Ofer, so this may have been familiar to you. |
|
| Back to top |
|
 |
acevedo
Active User
Joined: 11 May 2005 Posts: 249 Location: Spain
|
|
|
|
glad to help you.
 |
|
| Back to top |
|
 |
vasanthz
New User
Joined: 28 Aug 2007 Posts: 15 Location: Chennai
|
|
|
|
Hi,
There are hundreds of CICS jobs in spool, both running and completed ones also...
like this,
| Code: |
PREFIX=CICSTD* DEST=(ALL) OWNER=* SORT=Pos/A FILTERS=1 SYSN
NP JOBNAME JobID Owner Prty Queue C Pos Max-RC
CICSTD5 STC13169 TCICS 15 EXECUTION
CICSTD8 STC13172 TCICS 15 EXECUTION
CICSTD6 STC13170 TCICS 15 EXECUTION
CICSTD7 STC13171 TCICS 15 EXECUTION
CICSTDA STC21176 TCICS 15 EXECUTION
CICSTDB STC05511 TCICS 1 PRINT 8 CC 0000
CICSTDD STC05513 TCICS 1 PRINT 9 CC 0000
CICSTD6 STC05556 TCICS 1 PRINT 10 CC 0000
CICSTDE STC05544 TCICS 1 PRINT 11 CC 0000
CICSTD7 STC05560 TCICS 1 PRINT 12 CC 0000 |
I want to extract the JESMSG's of only the EXECUTING CICS jobs alone and leave out the completed ones.
I tried using DA in sdsf, but it does not show even executing CICS jobs.
I tried using "FILTER QUEUE EXECUTION" in the REXX code, but that too did'nt not work.
FILTER QUEUE EXECUTION command works perfectly in online mode, it brings up only executing CICS jobs. like this,
| Code: |
PREFIX=CICSTD* DEST=(ALL) OWNER=* SORT=Pos/A FILTERS=1 SYSNAME=
NP JOBNAME JobID Owner Prty Queue C Pos Max-RC SAff ASys S
CICSTD5 STC13169 TCICS 15 EXECUTION MVSK MVSK
CICSTD8 STC13172 TCICS 15 EXECUTION MVSK MVSK
CICSTD6 STC13170 TCICS 15 EXECUTION MVSK MVSK
CICSTD7 STC13171 TCICS 15 EXECUTION MVSK MVSK
CICSTDA STC21176 TCICS 15 EXECUTION MVSK MVSK |
I guess that FILTER command is for viewing purposes only and REXX does not recognise it.
Could someone show some light in the tunnel, about how this can be carried forward.
Thanks in advance,  |
|
| Back to top |
|
 |
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 965 Location: At my desk
|
|
|
|
| vasanthz wrote: |
| There are hundreds of CICS jobs in spool, both running and completed ones also... |
Welcome back.....
Check out Lionel B. Dyck. he has a great little tool, SDFSEXT, a generalized SDSF batch tool to extract all or part of your sysout into a dataset that you could do whatever you want with. |
|
| Back to top |
|
 |
|
|