The JCL dataset contains 4 sample Batch jobs:
Sample Job |
What it does |
When to use it |
$$HISCP |
Print for each time interval the SMF 113 statistics separated for the CP and the zIIP processor pool. Example: If you have 20 CPs and 10 zIIPs you will get two lines with a processor count of 20 and 10 for each pool |
For sub-capacity machines when CPs and zIIPs have different speed If the dominating workload (for example CICS) doesn’t use zIIPs and a second workload (for example Websphere) uses zIIPs you might want to separate the result for the pools. |
SSHISPRC |
Same as above but combines the CP and zIIPs as processors Example: If you have 20 CPs and 10 zIIPs you get one line with a processor count of 30 |
Don’t use this for sub-capacity machines. Otherwise it is meaningful to report all processors as one set. |
$$HISSUM |
Allows to report on a time period. The time period can be specified in Step S113EXT. Again this job reports on CPs and zIIPs separately. |
Same as for $$HSICP |
$$HISPRS |
Same as above but reports all processor pools as one set of processors. |
Same as for $$HISPRSS |
The batch job $$HISCP is printed below. You must customize all red colored parts. For the other jobs the same customization is required:
Then you can run the job. At the end of the execution the job deletes all temporary datasets including the raw HIS dataset. If you want to keep the intermediate datasets or some of them you must delete these job contral statements.
The job consists of five steps:
Annotation: $$HISSUM and $$HISPRS contain a further step S113EXT between the sort and the summarization step. Both jobs summarize all intervals for one day so the extra step extracts the interval for the time period for which the summary should be created. The time value can be adjusted.
//UIDxxxxx JOB (XXXXXXX,,XXXXX),'NAME',NOTIFY=&SYSUID.,
// MSGCLASS=H,CLASS=U,REGION=0M
//**************************************************************/
//*
//* DEFINE INPUT DATASETS
//*
//
SET SMFDSN=<smf dataset>
//
SET HISDSN=<raw his
output>.HISDATA
//
SET SRTDSN=<sorted HIS
counter dataset>.HISDATAS
//
SET SUMDSN=<summarized
his output>.SUMDATA
//
SET TMPDSN=<just a temp
dataset>.TMPDATA
//
SET RESDSN=<result
data>.RSLDATA
//**************************************************************/
//*
//* DEFINE GENERAL DATASETS
//*
//
SET EXECDSN=BVAU.S113.CEXEC
//
SET SUMMEMB=BVAU.S113.JCLPRMS(SUMDATA)
//
SET S113MEMB=BVAU.S113.JCLPRMS(HISREP)
//**************************************************************/
//* Create HISDATA Table from SMF 113 data
//*
//DELDS EXEC
PGM=IEFBR14
//OUTDATA
DD DSN=&HISDSN.,
// UNIT=SYSDA,
// DISP=(MOD,DELETE),SPACE=(CYL,1)
//S113REPT EXEC PGM=IKJEFT01,REGION=0M,DYNAMNBR=50,
// PARM='S113RPT
CC(0) R(YES)'
//SYSPROC
DD
DISP=SHR,DSN=&EXECDSN.
//SMFDSN DD DISP=SHR,DSN=&SMFDSN.
//OUTDSN DD DISP=(NEW,CATLG),SPACE=(CYL,(25,25),RLSE),
// UNIT=SYSDA,
// DCB=(RECFM=VB,LRECL=2048,BLKSIZE=10240),
//
DSN=&HISDSN.
//SYSTSPRT DD
SYSOUT=*
//SYSPRINT DD
SYSOUT=*
//SYSTERM
DD SYSOUT=*
//SYSTSIN
DD DUMMY
//PARMS DD DUMMY
//*************************************************
//* Sort HISDATA table to ensure all CPs and zIIPs of
//* one interval are consecutive
together
//*
//DECLARE EXEC PGM=IEFBR14
//OUTDATA DD DSN=&SRTDSN.,
//
UNIT=SYSDA,
//
DISP=(MOD,DELETE),SPACE=(CYL,1)
//S113SORT EXEC PGM=IKJEFT01,REGION=0M,DYNAMNBR=50,
// PARM='S113SORT USEDD SORT(6,8,2,3)
'
//SYSPROC DD
DISP=SHR,DSN=&EXECDSN.
//INPUT
DD DISP=SHR,DSN=&HISDSN.
//OUTPUT
DD DISP=(NEW,CATLG),
//
SPACE=(CYL,(200,200),RLSE),
//
UNIT=SYSDA,
//
DCB=(RECFM=VB,LRECL=2048,BLKSIZE=10240),
//
DSN=&SRTDSN.
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTERM DD
SYSOUT=*
//SYSTSIN DD
DUMMY
//SYSIN
DD DUMMY
//*************************************************
//* Summarize HIS data for each interval
//*
//DECLARE EXEC PGM=IEFBR14
//OUTDATA DD DSN=&SUMDSN.,
// UNIT=SYSDA,
// DISP=(MOD,DELETE),SPACE=(CYL,1)
//S113SUM EXEC PGM=IKJEFT01,REGION=0M,DYNAMNBR=50,
// PARM='S113SUM DEBUG'
//SYSPROC DD
DISP=SHR,DSN=&EXECDSN.
//INPUT DD DISP=SHR,DSN=&SRTDSN.
//OUTPUT
DD DISP=(NEW,CATLG),
// SPACE=(CYL,(500,500),RLSE),
//
LIKE=&HISDSN.,
//
DSN=&SUMDSN.
//SYSTSPRT DD
SYSOUT=*
//SYSPRINT DD
SYSOUT=*
//SYSTERM
DD SYSOUT=*
//SYSTSIN
DD DUMMY
//PARMS DD DISP=SHR,DSN=&SUMMEMB.
//**************************************************************/
//* Create S113DATA
Table (convert HIS counters to numbers)
//*
//DELDS EXEC PGM=IEFBR14
//TMPDATA DD DSN=&TMPDSN.,
// UNIT=SYSDA,
// DISP=(MOD,DELETE),SPACE=(CYL,1)
//S113CSV EXEC
PGM=IKJEFT01,REGION=0M,DYNAMNBR=50,
// PARM='S113CSV SUMDATA '
//SYSPROC DD
DISP=SHR,DSN=&EXECDSN.
//INPUT DD DISP=SHR,DSN=&SUMDSN.
//OUTPUT DD DISP=(NEW,CATLG),SPACE=(CYL,(50,50),RLSE),
// UNIT=SYSDA,
// DCB=(RECFM=VB,LRECL=2048,BLKSIZE=10240),
// DSN=&TMPDSN.
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTERM DD
SYSOUT=*
//SYSTSIN DD
DUMMY
//PARMS DD DISP=SHR,DSN=&S113MEMB.
//*********************************************/
//* Format Result dataset to
become readable
//*
//DELDS EXEC PGM=IEFBR14
//OUTDATA DD DSN=&RESDSN.,
// UNIT=SYSDA,
// DISP=(MOD,DELETE),SPACE=(CYL,1)
//S113FORM EXEC PGM=IKJEFT01,REGION=0M,DYNAMNBR=50,
// PARM='S113FORM USEDD P(2)'
//SYSPROC DD DISP=SHR,DSN=&EXECDSN.
//INPUT DD DISP=SHR,DSN=&TMPDSN.
//OUTPUT DD DISP=(NEW,CATLG),
// SPACE=(CYL,(50,50),RLSE),
// UNIT=SYSDA,
// DCB=(RECFM=VB,LRECL=2048,BLKSIZE=10240),
// DSN=&RESDSN.
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//SYSTSIN DD DUMMY
//SYSIN DD
DUMMY
//**************************************************************/
//* Delete
all temporary datasets
//*
//DELDSE EXEC PGM=IEFBR14
//HISDATA DD
DSN=&HISDSN.,
// UNIT=SYSDA,
// DISP=(MOD,DELETE),SPACE=(CYL,1)
//TMPDATA DD
DSN=&TMPDSN.,
// UNIT=SYSDA,
// DISP=(MOD,DELETE),SPACE=(CYL,1)
//SUMDATA DD
DSN=&SUMDSN.,
// UNIT=SYSDA,
// DISP=(MOD,DELETE),SPACE=(CYL,1)
//SRTDATA DD
DSN=&SRTDSN.,
// UNIT=SYSDA,
// DISP=(MOD,DELETE),SPACE=(CYL,1)