Phase 7: Handling MSGCLASS Output
This is an optional phase of the project plan. In this phase, we will discuss how to handle the MSGCLASS output (JCL listings) produced at your site.
Some of the questions we will be answering in this phase are:
-
How can I handle the MSGCLASS output?
-
What is a generic decollating mission?
-
What are the differences between generic and regular decollating missions?
-
How do generic decollating missions work?
-
How do I control generic processing?
-
How do I schedule a generic decollating mission?
-
What are the parameters of a generic decollating mission?
-
What is the workflow of a generic decollating mission?
Inputs
Before you start this phase you should have inserted recipient information into the recipient tree (Phase 2).
Outputs
At the end of this phase you will have:
-
Defined and tested the generic decollating missions.
-
Defined appropriate authorizations in the recipient tree for online access to MSGCLASS output.
Generic Decollating Missions Overview
You can use Control-D generic decollating missions to control the MSGCLASS output produced by your batch jobs.
Control-D can process the JCL output produced to the spool and store it in compressed datasets. You have the option to store the output in a special CDAM file designed specifically for small outputs. You can then keep the MSGCLASS output online, available for viewing and problem determination, and archive the output to tape or cartridge. If the outputs have been deleted from the online environment and are required during the archive period, they can be easily restored.
Benefits of MSGCLASS Archive
We recommend that you handle all the MSGCLASS output produced by your production batch work by using Control-D generic decollating missions. You have the ability to view the JCL online, apply supplied rulers when viewing to check for error situations, and archive the JCL. If you currently print all JCL listings, this practice can be discontinued once Control-D is processing the outputs. If you require a hard copy at any time you can use the Control-D Online facilities to produce one.
The benefits of Control-D handling MSGCLASS output are listed below:
-
No printing is required.
-
No splitting of JCL output occurs.
-
No filing of JCL listings is necessary.
-
No physical storage area required for JCL is necessary.
-
Secure backup of JCL is provided.
-
Easy retrieval of JCL for problem determination is provided.
-
Online viewing selection criteria can be used to identify erroneous jobs (for example, show all the jobs that failed with condition code SB37).
-
Online viewing of special rulers can be used to extract all the erroneous messages from a job (for example, show all invalid condition codes produced).
-
Installation security package can control access to JCL listings.
What is a Generic Decollating Mission?
We use a special type of decollating mission to handle the MSGCLASS output produced by JES. The missions we use are called generic decollating missions.
We use the name "generic" to describe these missions because, usually, a generic mission will handle output with variable job names that have the same distribution requirements (for example, all the JCL listings beginning with job name characters JAC are assigned to the Accounts Application Programming recipients).
Generic Versus Regular Decollating Missions
Standard report decollating missions can handle output from the spool or from CDAM datasets. They are executed once to handle the output produced by a specific job name (unless defined as cyclic report decollating missions, with a task type of CRP).
The generic decollating missions monitor specific JES classes (assigned in member CTDPARM in the IOA PARM library) for the appearance of Non-Held output. When an output appears, Control-D looks for a generic mission to process the output.
The table below compares the differences between standard and generic decollating missions:
Table 36 Differences Between Standard and Generic Report Decollating Missions
Standard Report Decollating Mission |
Generic Report Decollating Mission |
---|---|
Decollates from the spool or CDAM. |
Decollates from spool only. |
Decollates from any specified class. |
Decollates only from the defined generic classes. |
Decollates Held and Non-Held output. |
Decollates Non-Held output only. |
Handles specific job names only. |
Can use job name masks. |
Executes once (unless the task type is set to CRP). |
Executes every time a job name match is found. |
Set Installation Options
The Generic Missions analyze specific JES classes for Non-Held output. These classes are defined in the CTDPARM member of the IOA PARM library. These are the classes that Control-D monitors – when an output appears in these classes, Control-D will search for a generic decollating mission to handle the output. You can specify up to eight classes for generic processing.
Installation Parameters (CTDPARM)
BROWSE -- IOAP.PROD.PARM(CTDPARM) - 01.03 ------ LINE 00000023 COL 001 080
COMMAND ===> SCROLL ===> CSR
DFLTRST=RST0060M, DEFAULT RESTORE MISSION NAME *00450001
DFLTUSR=SYSTEMS, FUTURE USE - DEFAULT USER *00460000
FCBON=N, FUTURE USE - FCB ON/OFF INDICATOR *00480000
GENCLAS=PW, GENERIC CLASSES *00490002
ESCAPCL=A, SYSOUTS ESCAPE CLASS (FOR GENERIC) *00490101
JES3ESC=, JES3 ESCAPE CLASS (FOR GENERIC) *00491001
You should now decide and define which classes will be used for generic processing.
Define Generic Decollating Missions
You use the Report Decollating Missions Definition facility (Option R in the IOA Primary Option menu) to define generic missions in the decollating mission library. You use parameter GENERIC of the decollating mission parameters to specify that the mission is a generic mission.
When a generic decollating mission executes, the output is handled according to the instructions defined in the generic decollating mission parameters. Using a job name mask we can define decollating instructions that are the same for different job names.
Generic Report Decollating Mission Definition Screen
----- CONTROL-D/V CATEGORY AAA JOB PBR* ----------- (R.S)
COMMAND ===> SCROLL===> CRSR
+-----------------------------------------------------------------------------+
CATEGORY PROD JOBNAME PBR* GENERIC Y MONITOR
OWNER M90 TASKTYPE REP GROUP JOBID
DESC
===========================================================================
DAYS DCAL
AND/OR
WDAYS WCAL
MONTHS 1- Y 2- Y 3- Y 4- Y 5- Y 6- Y 7- Y 8- Y 9- Y 10- Y 11- Y 12- Y
DATES
CONFCAL SHIFT RETRO N MAXWAIT 00
MINIMUM PDS
===========================================================================
IN
WHEN IN QUEUE CLS TIME FROM UNTIL INTERVAL PRIORITY
DSN
===========================================================================
OUT
SHOUT WHEN TO URG
MSG
===========================================================================
DEF COPIES LVL USER DEST MAX COPIES
===========================================================================
ON CLASS = P EXTWTR DEST FORM
PRT COPIES LVL USER DEST MAX COPIES
PRINT/CDAM PARMS =
WHEN LINE - COL - PRINT REF NXT CT AND/OR
STRING =
DO USER = LVL LINE COL -
S A T SYNONYM = CONCAT =
DO NAME = JCL LISTING LINE COL -
DO BACKUP = BKP0031D
DO
======= >>>>>>>>>> END OF JOB/REPORT PARAMETERS FOR THIS CATEGORY <<<<<<< =====
FILL IN REPORT DEFINITION. CMDS: EDIT, SCHED, SHPF, PATH 10.51.22
In the previous example, all output written to the generic class of P with a job name starting with the letters PBR, is assigned to the PRODCNTL recipient.
Generic Job Names
When the report decollating mission is defined as generic, parameter JOBNAME can contain a job name mask. This mask will be compared with the job names appearing on the generic output classes. For example:
Table 37 Job Name Masking in Generic Decollating Missions
Jobname Mask |
Selected Job Names |
---|---|
* |
All jobs will be selected for processing. |
PBL* |
All jobs beginning with PBL will be selected. |
P??BKUP |
All jobs beginning with P with any two characters following and ending in BKUP will be selected. |
P*B* |
Any jobs with a P followed anywhere by a B are selected. |
Control the Generic Process
You can control generic processing by turning it off and on. You use operator commands to perform this process. By default, generic processing will be started when Control-D is started (unless it was previously deactivated by an operator command).
One reason that generic processing may be deactivated is if the Control-D New Day Procedure (CTDNDAY) fails to schedule the Generic Missions to the Active Missions file. When generic processing is deactivated, the Generic Missions will not select outputs from the defined generic classes.
The operator command to stop generic processing is:
F CONTROLD,STOPGEN
The operator command to start generic processing is:
F CONTROLD,STARTGEN
Only in extreme situations should generic processing be stopped and started manually.
Generic Processing Workflow
The generic decollating mission workflow of Control-D is shown in Figure 14. It shows the stages involved from initially scheduling a Generic Decollating Mission through to processing the output. There are certain phases of the workflow that you have to decide how to perform for your site. We will examine each phase in detail:
-
MSGCLASS output written to spool.
-
Schedule generic decollating mission to the Active Missions file.
-
Select generic decollating mission for execution.
-
Execute generic decollating mission instructions.
-
Write output to a collective CDAM file.
-
Create entries in the Active User Report List file.
Figure 37 Generic Decollation Workflow
MSGCLASS Output Written to Spool
DAILY SUBSYSTEM in the above figure refers to the New Day procedure and the programs it calls.
MSGCLASS output is created for all jobs that run under JES. In installation parameter GENCLAS in member CTDPARM, you specify which classes are assigned for generic processing. You should ensure that the MSGCLASS output you want to handle is written to one of the defined generic classes as Non-Held output.
Normally, you specify to which class to assign the JCL output using parameter MSGCLASS of the JCL JOBCARD. For example:
Sample JCL Statements
//M90TEST JOB ,IOA,CLASS=A,MSGCLASS=W//*
//STEP1 EXEC PGM=IEBGENER
//SYSUT1 DD DISP=SHR,DSN=IOAP.PROD.SAMPREPS(REPORT1)
//SYSUT2 DD SYSOUT=D
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=*
Schedule Generic Decollating Missions to the Active Missions File
Generic Missions must be scheduled to the Active Missions file to execute. The mechanism used to place a copy of the generic decollating mission definitions on the Active Missions file is a special scheduling program called by the New Day procedure (CTDNDAY).
You can schedule generic decollating missions using any of the methods detailed in Phase 3 for regular report decollating missions. We recommend that you use member GENLIST read by the CTDNDAY procedure to schedule generic missions. Control-D will analyze a supplied list of generic missions and determine which ones should be scheduled to the Active Missions file. The reason for this recommendation is that if the CTDNDAY procedure fails to schedule the generic missions, it will automatically deactivate generic processing. The other methods of scheduling will not do this if an error occurs.
MSGCLASS output that is written to a generic class before a generic decollating mission is scheduled, or while generic processing is deactivated, will be processed when the relevant mission is scheduled, or when generic processing is restarted. If generic processing is stopped for any reason, a highlighted message is written to the console every ten minutes. This is to make you aware that the spool might be filling up with MSGCLASS output.
Select Generic Decollating Missions for Execution
The Control-D monitor analyzes the Active Missions file at the interval specified in installation parameter INTERVALD in member CTDPARM, and selects missions for execution once all Runtime dependencies have been met. Normally, for Generic Missions you will not define any dependency parameters.
Execute Generic Decollating Mission Instructions
Whenever a Non-Held output appears on the spool in one of the defined generic classes, the Control-D monitor looks for a generic decollating mission that matches the job name. If a match is found, the sysout is decollated according to the defined mission parameters and deleted from the spool. If the $SYSIN system variable is set to Y in the decollation definition, then in-stream data (SYSINs) are also decollated. If no match is found, Control-D changes the priority of the sysout and continues to analyze the generic classes.
In JES3 sites, unmatched outputs written to the generic class are directed to another class as specified in parameter ESCAPCL in member CTDPARM.
Active Missions File Display
-------------------- CONTROL-D ACTIVE MISSIONS ENVIRONMENT -----------------(A)
COMMAND ===> SCROLL===> CRSR
O NAME ODATE TYP OWNER ------------------STATUS ------------------ UP
BKP0031D 020400 BKP M22 WAIT PROCESS
RST0060M 020400 CRS M22 WAIT PROCESS
RSTADHOC 020400 RST M22 WAIT PROCESS
JBR3450 020400 REP M90 J00469 ENDED "OK"
PB* 020400 REP M83 GENERIC WAITING FOR JOB
PAC1020D 020400 REP M90 J09381 ENDED "OK"
SL*D 020400 REP M83 GENERIC WAITING FOR JOB
LAS132 020400 PRT M90 PAGES= 119 ENDED "OK"
IMP132 020400 PRT M46 WAIT PROCESS
M69BX016 030400 REP M69B J03081 ENDED "OK"
M83X16 030400 REP M83 J03135 ENDED "OK"
======== >>>>>>>>>>>>>>>>>>> BOTTOM OF ACTIVE MISSIONS LIST <<<<<<<<<<<<<< ===
OPT ? WHY H HOLD D DELETE F FREE L LOG Z ZOOM R RERUN P PRINT CONTROL 12.20.47
Write Output to a Collective CDAM File
The default working practice of Control-D is to store every JES dataset created on the spool as a CDAM file. This is acceptable for standard reports, but for small reports like MSGCLASS output, this becomes a resource overhead.
Each MSGCLASS output created consists of at least three small separate JES datasets. Using the default workings of Control-D, three CDAM datasets would be created (one for each JES dataset), three $SYSDATA entries would be created (one describing each CDAM dataset), and a variable number of user entries would be created (depending on how many recipients are allocated the report). For example:
$SYSDATA Display of MSGCLASS Output
ACTIVE LIST <D> JOB M90 REP USR $SYSDATA CHILD (U)
COMMAND ===> SCROLL===> CRSR
O JOB JNUM PROCSTEP PGMSTEP DDNAME PAGES LINES DECOLLATION-TIME
M90ACCT 22325 JES2 JESMSGLG 1 14 10/05/00 - 15:54
M90ACCT 22325 JES2 JESJCL 1 9 10/05/00 - 15:54
M90ACCT 22325 JES2 JESYSMSG 1 20 10/05/00 - 15:54
M90ACCT 22325 STEP1 SYSUT2 9 427 10/05/00 - 15:54
M90ACCT 22325 STEP1 SYSPRINT 1 4 10/05/00 - 15:54
======= >>>>>>>>>>>>>>> B O T T O M O F L I S T <<<<<<<<<<<<<<< ======
P PRINT V VIEW U UPDATE I INSERT A ADD INFO E EDIT
X INDEX N NOTE G GIVETO D DELETE Q QUICK ACCESS 12.09.25
In the above display we can see the separate $SYSDATA entries created in the Active User Report List file using the default process of Control-D.
Allocation Options
To overcome potential resource problems when handling MSGCLASS outputs, we use a special CDAM control parameter called ALLOCOPT. This parameter can only be used when decollating output from the spool. It tells Control-D to store the output retrieved from the spool in a special way. Instead of creating one CDAM file per JES dataset, the ALLOCOPT parameter tells Control-D to store the report output in a special communal CDAM dataset.
When handling MSGCLASS output, we recommend that you use the statement ALLOCOPT=JOBSDSN1. This will result in many MSGCLASS outputs being grouped together into one CDAM dataset that acts as a repository for these small outputs. Control-D takes care of the allocation and creation of these "super" CDAMs as they fill up.
The ALLOCOPT parameter is coded in the generic decollating mission parameters in the PRINT/CDAM field as shown below:
Generic Decollating Mission Allocation Option
ON CLASS = P EXTWTR DEST FORM
PRT COPIES LVL USER DEST MAX COPIES
PRINT/CDAM PARMS = ALLOCOPT=JOBSDSN1
PRINT/CDAM PARMS =
WHEN LINE - COL - PRINT REF NXT CT AND/OR
STRING =
DO USER = PRODCNTL LVL LINE COL - S T
SYNONYM = CONCAT =
DO NAME = JCL LISTING LINE COL -
DO BACKUP = BKP0031D
DO
======= >>>>>>>>>> END OF JOB/REPORT PARAMETERS FOR THIS CATEGORY <<<<<<< =====
Allocation Options Comparison
A comparison between some of the allocation options is shown below. We are comparing the normal way in which Control-D handles report output, the ALLOCOPT=ONEDSN option that groups output at job level, and the ALLOCOPT=JOBSDSN1 option that groups output in a "super" CDAM. Assume that one thousand batch jobs are running each night. The table below shows the resources used for each option:
Table 38 Comparison of Allocation Options (Based On 1,000 Jobs Per Night)
|
NORMAL |
ONEDSN |
JOBSDSN1 |
---|---|---|---|
JES DATASET |
3000+ |
3000+ |
3000+ |
CDAM FILE |
3000+ |
1000 |
1 |
$SYSDATA ENT |
3000+ |
1000 |
1000 |
USER ENT |
1000+ |
1000+ |
1000+ |
VTOC ENT |
3000+ |
1000 |
1 |
TRKS RQD |
3000+ |
1000 |
180 |
BMC strongly recommends that generic decollating missions handling MSGCLASS output uses the JOBSDSN1 allocation parameter. This will prevent and save on resources used. It cuts down on the number of VTOC entries, prevents fragmentation problems, cuts down on the number of records stored in the Control-D user files and reduces the amount of space required to hold the MSGCLASS output.
For further information on the allocation options, see the CDAM chapter in the Control-D and Control-V User Guide.
Create Entries in the Active User File
The result of the decollation process is that entries are created in the Active User file. These entries are created as records in a VSAM file that details which parts of the CDAM file are assigned to each user. As soon as a decollation has been performed, the MSGCLASS entries are available for online viewing, archiving and if absolutely necessary, printing.
Recommendations
BMC recommends that after initial testing you set up the generic missions to handle the production MSGCLASS output. This will mean that the MSGCLASS output will be handled by Control-D from this point onwards. This will provide some data for your backup missions and Control-D utilities to process. It also means that there is one less task to do when Control-D goes "live" in production.
You may choose to handle the MSGCLASS output of the selected pilot application only, or you may want to handle all the production MSGCLASS using generic missions. The difference in time required between the options is minimal.
The examples we have covered in this phase have dealt purely with generic missions and MSGCLASS output. You may have other reports from the pilot application that are suited to the generic process. You should set up appropriate generic missions to handle these.
You should now decide which MSGCLASS outputs you will handle during the initial implementation and set up the required generic missions to process this output.
Provide Access to Archived MSGCLASS
You should ensure that anyone requiring access to Control-D archived MSGCLASS is authorized appropriately in the recipient tree. You will be assigning the MSGCLASS output to one or more recipients. You can assign the output to the PRODCNTL recipient that you defined during Phase 2. You should use the AUTHORIZE field of this recipient to authorize which userids can view the MSGCLASS output.
You should now define authorizations in the recipient tree for the appropriate userids.
Review
During this phase, you have learned the differences between generic and regular decollating missions, decided which classes should be used for generic processing, reviewed the parameters required for a generic mission and reviewed the workflow of the generic process.
Before you continue, you should have:
-
Defined, tested and implemented the generic decollating missions.
-
Set up appropriate authorizations in the recipient tree for MSGCLASS access.