IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Running JCL Syntax check for Large number of jobs


IBM Mainframe Forums -> CA Products
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
nkumar

New User


Joined: 09 Mar 2008
Posts: 28
Location: USA

PostPosted: Sat Sep 10, 2011 10:13 am
Reply with quote

Hi All,

I need a little help/guidance in creating some kind of automation for doing JCL check when there are large number of jobs. We normally use "!JCK" to check the syntax of JCL. It is ok to use when we have a handful of jobs.

But we generally have large number of jobs (say 200 jobs) for which we require to do the JCL Check.

I know about TYPRUN=SCAN but I can not edit all the 200 jobs to put this statement in job card and run all of them to see the error messages.

Can any one please suggest someway to do JCL Check in batch so that we can create some kind of report showing error messages/Jobs.

Can !JCK be submitted any batch?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Sat Sep 10, 2011 10:31 am
Reply with quote

what does the manual say ?
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Sat Sep 10, 2011 6:29 pm
Reply with quote

See this previous topic.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Sep 10, 2011 9:51 pm
Reply with quote

Hello,

And be aware that a jcl checker will sometimes show "errors" that are NOT errors. . .

Quote:
I know about TYPRUN=SCAN but I can not edit all the 200 jobs to put this statement in job card and run all of them to see the error messages.
Why not. . . icon_confused.gif

Many places have a commented TYPRUN=SCAN in their job statements and remove the * when they want to do a scan.
Back to top
View user's profile Send private message
Escapa

Senior Member


Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

PostPosted: Sat Sep 10, 2011 10:55 pm
Reply with quote

Quote:
Can !JCK be submitted any batch?

Hi,
Invoke JCLCHECK in batch for all the members in PDS.

Below is the sample code which scans all the members in the PDS for JCLCHECK.
Code:

//JCLCHECK  EXEC  PGM=JCLCHECK,PARM='O(OPTS)'                   
//STEPLIB   DD  DSN=SYS2.CAI.JCHK.CAILIB,DISP=SHR               
//*         DD  DSN=SYS3.CAI.JCHK.CAIPLD,DISP=SHR               
//SYSPRINT  DD  SYSOUT=*                                       
//SYSTSPRT  DD  SYSOUT=*                                       
//SYSTERM   DD  SYSOUT=*                                       
//SYSGRAPH  DD  SYSOUT=*,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//£NOSTDIN  DD  DUMMY,DCB=BLKSIZE=80                           
//SYSRDR    DD  SYSOUT=(A,INTRDR)                               
//OPTS      DD  *                                               
CC(5)  CT    SP(NOR 65 NOALL) V                                 
F PXR(RPT) SX RP ER(END)                                       
SYN RUNT                                                       
J XREF                                                         
AUTOP                                                           
PDS                                                             
//SYSIN     DD  DSN=HQL.WHERE.JOB.IS,DISP=SHR                   
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Sun Sep 11, 2011 3:20 pm
Reply with quote

Escapa,

i dont see any proclib dd-statements.
Back to top
View user's profile Send private message
Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 2455
Location: Hampshire, UK

PostPosted: Sun Sep 11, 2011 6:57 pm
Reply with quote

I suspect that the proclib DDs are in the run decks which are, presumably, in SYSIN
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Sun Sep 11, 2011 7:54 pm
Reply with quote

Nic,

there are a lot of parameters to feed to JCLCHECK by SYSIN, but one has
to supply the proclibs by means of dd-statements. Like in the JES2 procedure.
Back to top
View user's profile Send private message
nkumar

New User


Joined: 09 Mar 2008
Posts: 28
Location: USA

PostPosted: Tue Sep 13, 2011 12:09 am
Reply with quote

Thank You Everyone (particularly Escapa) for your response for my query. I finally found something which will get me started.

Following JCL is working fine for a single job. I am now planning to write a REXX code to create the "OPTS" card for each member in JCL library and submit them through REXX.
Code:

//JCLCHECK  EXEC  PGM=JCLCHECK,PARM='O(OPTS)'                 
//STEPLIB   DD  DSN=SYS0.CAI.CAILIB,DISP=SHR                   
//SYSPRINT  DD  SYSOUT=*                                       
//SYSTSPRT  DD  SYSOUT=*                                       
//SYSTERM   DD  SYSOUT=*                                       
//SYSGRAPH  DD  SYSOUT=*,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//$NOSTDIN  DD  DUMMY,DCB=BLKSIZE=80                           
//JCHKPLIB  DD  DSN=SYS1.PROCLIB,DISP=SHR                     
//SYSRDR    DD  SYSOUT=(A,INTRDR)                             
//OPTS      DD  *                                             
CC(5) CON CT   SEV(8) SP(RPT 65 NOALL) V PROCX                 
F PXR(RPT) SX RP ER( END)  NOMVS SYSUID(userid)               
SYN RUNT                                                       
PROC(JCHKPLIB) J XREF                                         
PDS INCLUDE(member name)                                           
/*                                                             
//SYSIN     DD  DSN=JCL Library,DISP=SHR   


I further got some help from the below link. It helped me set my "option specifications"

http://it.unm.edu/ais/docs/stdjclcheck.htm

Thank you once again everyone. I will try to give an update once I succeed in complete automation of JCL check for large number of jobs.
Back to top
View user's profile Send private message
Ed Goodman

Active Member


Joined: 08 Jun 2011
Posts: 556
Location: USA

PostPosted: Tue Sep 13, 2011 7:35 pm
Reply with quote

One thing I would caution you on: Try to figure out the proper sequence of the jobs and check them in that sequence.

This is coming from a shop using JOBSCAN, which is a different product, but it may be the same thing with JCLCHECK. Some jobs catalog files used by later jobs, and you can be driven crazy trying to weed out the false hits. If I check the jobs in sequence, those go away and I only get real errors.

With JOBSCAN, it keeps track of files cataloged in the "current run", and will not show a "dataset not found" condition.

I have a job set up to run our scheduler to show the proper job sequence, then it reads the job names and runs them through the scanner in order.
Back to top
View user's profile Send private message
nkumar

New User


Joined: 09 Mar 2008
Posts: 28
Location: USA

PostPosted: Tue Sep 13, 2011 9:22 pm
Reply with quote

Thanks Ed Goodman !!

I am still going through the manual (HELP) of JCLCHECK. I can see that it has feature (PDSRelate) similar to what you have mentioned.

PDSRelate- The PDSRELate option causes JCLCheck to treat input from a
PDS as a related series of jobs. Thus by specifying PDSRELate and SXref, JCLCheck will produce a set of cross reference reports that correctly represents a series of jobs.
Back to top
View user's profile Send private message
justjpr

New User


Joined: 03 Nov 2022
Posts: 12
Location: INDIA

PostPosted: Sun Nov 06, 2022 11:09 pm
Reply with quote

Quote:

Code:

//JCLCHECK  EXEC  PGM=JCLCHECK,PARM='O(OPTS)'                 
//STEPLIB   DD  DSN=SYS0.CAI.CAILIB,DISP=SHR                   
//SYSPRINT  DD  SYSOUT=*                                       
//SYSTSPRT  DD  SYSOUT=*                                       
//SYSTERM   DD  SYSOUT=*                                       
//SYSGRAPH  DD  SYSOUT=*,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=1330)
//$NOSTDIN  DD  DUMMY,DCB=BLKSIZE=80                           
//JCHKPLIB  DD  DSN=SYS1.PROCLIB,DISP=SHR                     
//SYSRDR    DD  SYSOUT=(A,INTRDR)                             
//OPTS      DD  *                                             
CC(5) CON CT   SEV(8) SP(RPT 65 NOALL) V PROCX                 
F PXR(RPT) SX RP ER( END)  NOMVS SYSUID(userid)               
SYN RUNT                                                       
PROC(JCHKPLIB) J XREF                                         
PDS INCLUDE(member name)                                           
/*                                                             
//SYSIN     DD  DSN=JCL Library,DISP=SHR   




This the JCL that I get from CA JCLCHECK tool. But it mostly (90%) fails with S222 abend in both batch or online check. The same error persists even in online check of a single JCL member input.

Error Message :
Code:

LAST STEP COMPLETION CODE WAS SYSTEM 222
<User-ID> LOGGED OFF TSO AT 10:14:08 ON NOVEMBER 5, 2022



ACF82904  ACF2, SESSION TERMINATED.



***

***

Job/online fails in a fraction of seconds (CPU TIME is 0). Hence it is not timed out error. Hence I opened a helpdesk ticket within our company, they have 5 days SLA, but I need to implement in 2 days. hence seeing help here.

When I tried to check all jobs (23 jobs) in a PDS, same error (S222) appears before JCL pops-up.

2) Another help. Can we use JCLCHECK to check PROCs. Is there any option to be specified in "OPTS" to do so?

All I need is to check 23 JCLs and 86 PROCs which I have modified a line in a step in all components ( All components are up& running in PROD).
Back to top
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1255
Location: Bamberg, Germany

PostPosted: Mon Nov 07, 2022 1:59 am
Reply with quote

Why not start a new topic instead of resurrecting a year old one?
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Mon Nov 07, 2022 9:41 am
Reply with quote

S222 means the job was cancelled - not timed out. You need to find out who cancelled the job and why.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CA Products

 


Similar Topics
Topic Forum Replies
No new posts Finding and researching jobs All Other Mainframe Topics 0
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts PARSE Syntax for not fix length word ... JCL & VSAM 7
No new posts Running REXX through JOB CLIST & REXX 13
No new posts Pulling a fixed number of records fro... DB2 2
Search our Forums:

Back to Top