View previous topic :: View next topic
|
Author |
Message |
nkumar
New User
Joined: 09 Mar 2008 Posts: 28 Location: USA
|
|
|
|
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 |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
what does the manual say ? |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
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. . .
Many places have a commented TYPRUN=SCAN in their job statements and remove the * when they want to do a scan. |
|
Back to top |
|
|
Escapa
Senior Member
Joined: 16 Feb 2007 Posts: 1399 Location: IL, USA
|
|
|
|
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 |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Escapa,
i dont see any proclib dd-statements. |
|
Back to top |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2454 Location: Hampshire, UK
|
|
|
|
I suspect that the proclib DDs are in the run decks which are, presumably, in SYSIN |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
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 |
|
|
nkumar
New User
Joined: 09 Mar 2008 Posts: 28 Location: USA
|
|
|
|
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 |
|
|
Ed Goodman
Active Member
Joined: 08 Jun 2011 Posts: 556 Location: USA
|
|
|
|
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 |
|
|
nkumar
New User
Joined: 09 Mar 2008 Posts: 28 Location: USA
|
|
|
|
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 |
|
|
justjpr
New User
Joined: 03 Nov 2022 Posts: 33 Location: INDIA
|
|
|
|
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 |
|
|
Joerg.Findeisen
Senior Member
Joined: 15 Aug 2015 Posts: 1334 Location: Bamberg, Germany
|
|
|
|
Why not start a new topic instead of resurrecting a year old one? |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
S222 means the job was cancelled - not timed out. You need to find out who cancelled the job and why. |
|
Back to top |
|
|
|