Portal | IBM Manuals | Downloads | Products | Refer | Info | Programs | JCLs | Forum Rules*| Site Map | Mainframe CD 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index
 
Register
 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index FAQ Search Memberlist Usergroups Profile Log in to check your private messages Log in
 
i want to extract all the JESMSGs of all the jobs

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CLIST & REXX
Author Message
vasanthz

New User


Joined: 28 Aug 2007
Posts: 15
Location: Chennai

PostPosted: Fri Apr 18, 2008 12:54 am    Post subject:
Reply with quote

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
View user's profile Send private message
References
PostPosted: Fri Apr 18, 2008 12:54 am    Post subject: Re: Reply with quote

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: 6039
Location: 221 B Baker St

PostPosted: Fri Apr 18, 2008 3:38 am    Post subject:
Reply with quote

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
View user's profile Send private message
vasanthz

New User


Joined: 28 Aug 2007
Posts: 15
Location: Chennai

PostPosted: Fri Apr 18, 2008 2:59 pm    Post subject:
Reply with quote

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
View user's profile Send private message
acevedo

Active User


Joined: 11 May 2005
Posts: 252
Location: Spain

PostPosted: Fri Apr 18, 2008 3:23 pm    Post subject:
Reply with quote

in SDSF if I type

Code:
DOWN '1'


i get
Code:

INVALID SCROLL AMOUNT


so instead type DOWN 1 (without quotes), so change
Code:
QUEUE "DOWN '"I"'"   

to
Code:
QUEUE "DOWN "I   


hth
Back to top
View user's profile Send private message
acevedo

Active User


Joined: 11 May 2005
Posts: 252
Location: Spain

PostPosted: Fri Apr 18, 2008 3:31 pm    Post subject:
Reply with quote

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
View user's profile Send private message
vasanthz

New User


Joined: 28 Aug 2007
Posts: 15
Location: Chennai

PostPosted: Fri Apr 18, 2008 3:46 pm    Post subject:
Reply with quote

Hi acevedo,

Many thanks for the correction, the variable I resolves properly icon_smile.gif

BTW. This REXX code was taken from a post by Ofer, so this may have been familiar to you.
Back to top
View user's profile Send private message
acevedo

Active User


Joined: 11 May 2005
Posts: 252
Location: Spain

PostPosted: Fri Apr 18, 2008 6:05 pm    Post subject:
Reply with quote

glad to help you.
icon_wink.gif
Back to top
View user's profile Send private message
vasanthz

New User


Joined: 28 Aug 2007
Posts: 15
Location: Chennai

PostPosted: Thu May 08, 2008 2:44 am    Post subject:
Reply with quote

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, icon_smile.gif
Back to top
View user's profile Send private message
CICS Guy

Senior Member


Joined: 18 Jul 2007
Posts: 1003
Location: At my desk

PostPosted: Thu May 08, 2008 6:56 am    Post subject:
Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CLIST & REXX All times are GMT + 6 Hours
Page 1 of 1