When composing a MICS/SAS program or MICF inquiry that reports on "recent" BATCH JOB EXECUTION ACTIVITY, it's important to consider that for several days from today (dependent on SUSPENDLIMIT setting in unit-level PARMS member SMFOPS), it's possible that the MICS DETAIL BATJOBnn file cycles may not reflect all batch-job execution activity -- one must consider that 'suspended jobs' (those still in the z/OS system, not yet purged) may still be in the system, possibly on the output queue or even executing. There is no concern needed if using the BATPGM/BAT_xx step/interval (job-step execution) activity.
The MICS DETAIL BAT_JS01 (Job Suspend File) contains observations for all address space types (not just JOBTYPE=1) and also it contains information about jobs / tasks / TSO-sessions / other address space types that are still executing.
When using the DETAIL BAT_JS01, care should be taken when extracting desired observations / event-activity for a particular report / MICS-output desired.
Here are a few MICS/SAS coding techniques for your edification / use / consideration (assuming that the MICSSHR? JCL PROC is used here):
-- the SET statement below subsets the job-suspend file to only select completed batch-type jobs (JOBTYPE test), as well as the past 7 cycles (where MFILE is used) -- the corresponding IF statement above also ensures only the past 7 days activity (based on job-ended date/time / ENDTS value) are selected.
_BATX.BAT_JS01 (WHERE=(JOBTYPE=1 AND SUBSTR(JOBMASK,3,1) = 'J') );
IF ( TODAY()-7 LE DATEPART(ENDTS) LE TODAY-1 );
-- the SET statement below subsets the job-suspend file to only select batch-type jobs, regardless of whether executing or not.
SET _BATX.BAT_JS01 (WHERE=(JOBTYPE=1);
Of course, it may be worthwhile to use PROC FREQ / PROC MEANS to analyze the various BAT_JS SAS variables in order to determine what might be in the SUSPEND status at any given time when doing analysis.
Also, one revealing metric in DETAIL BAT_JS01 is JOBSUSPN (Job Suspend Flag) which is actually a count of DAILY executions indicating just how long a BAT_JS observation has been in a suspend-state, for additional suspend processing awareness.
So, in summary, always keep in mind that there may be useful job-activity information still sitting in the DETAIL BAT_JS01 file, up to the number of days reflected by the SUSPENDLIMIT option setting.
Happy Thursday, People!