
Batch Processing, Systems Managed Storage and Tape Processing
If you have any questions about the content of this page, please contact Requests for clarification.
Batch Standards
- Job Naming Standards (what to call your batch jobs)
- MSGCLASS, MSGLEVEL and CLASS Parameters (how to use these important job card parameters)
- Job Classification Determination and Restrictions (how to best get your batch jobs run)
- Job Class Scheduling (when jobs are run for each class)
- Job Class Generation Table (how job classes are assigned)
- NWHOLD (how to delay the execution of a batch job)
SMS
- Storage Class
- Storage Groups
- Management Classes (all the management classes in use at the NWRDC)
- Data Classes (all the data classes in use at the NWRDC)
TAPES
- Tape Management System (TMS expiration and retention codes)
Job Naming Standards
Please start all job names with the appropriate two-character institution code for your organization; for example, NW for NWRDC. If you do not know your two-character institution code, contact (850) 245-3500 or ACF2 Request. In most cases it is the same as the two first letters of your ACF2 logonID.
Start development jobs (tests, compiles etc.) with the full five or six character logon id of the submitter/retriever of the job. Because this leaves only three characters for uniqueness, you must use the programmer name field (20 characters) to differentiate between like-named jobs.
MSGCLASS, MSGLEVEL and CLASS Parameters
Example JCL syntax:
//jobname JOB accounting_data,
// MSGCLASS=output_class,
// MSGLEVEL=(statements,messages),
// class="job_class"
MSGCLASS Parameter
The MSGCLASS parameter assigns the job log for a job to a particular sysout output class. The job log contains the JOB statement, the JCL for the job, JCL processing messages, in-stream and cataloged procedure statements, and JES2 messages and MVS operator messages
The default value supplied for the job log if MSGCLASS is omitted is A.
The default value for the * in //ddn DD SYSOUT=* is the MSGCLASS value set in the MSGCLASS parm.
Valid Message (or Output) Classes at the NWRDC
The following output classes have specific meaning:
A,J | Create output on the job spool regardless of run’s success |
B,K | Create output for PUNCH |
H | Hold the output regardless of run’s success |
J | Create output on the job spool regardless of run’s success |
X | Do not create output on the job spool, regardless of run’s success, "no output" |
Y | Print the output only if the run was unsuccessful |
MSGLEVEL Parameter
The MSGLEVEL parameter is used to control the listing of the job log for a job.
The following job log elements can be controlled:
- The JOB statement.
- All JCL in the job's input stream including all JCL statements and JES2 control (JECL) statements
- In-stream and cataloged procedure statements for a procedure invoked by a job step
- JCL substitution and processing messages
- JES and MVS operator messages concerning the job's processing, including those for allocations of devices/volumes, start/stop of job steps and the job, and the disposition of the data sets used
Syntax: MSGLEVEL=({statements}{,messages})
The parentheses can be left off if only the first subparameter is used.
Values for 'statements' in the MSGLEVEL keyword can be one of these:
0 | only JOB statement prints |
1 | all JCL and JES statements and messages print |
2 | only JCL & JES statements print |
Values for 'messages' in the MSGLEVEL keyword can be one of these:
0 | only JCL messages print. If the job ABENDs, then JES mssages print also. |
1 | JCL and JES messages print |
Examples:
// MSGLEVEL=(0,0) | Print minimal job log: |
// MSGLEVEL=(1,1) | Print everything in job log: (this is the default value) |
CLASS Parameter
The CLASS parameter is used to assign your job to a job processing class. The class you should request depends on the characteristics of the job and NWRDC's rules for assigning classes.
Job Classification Determination and Restrictions
JOB classes 1 through 7 are system generated at the NWRDC. Customers of the NWRDC should not use these classes. If one of these classes is specified in the CLASS parameter, NWRDC will resubmit the job under a generated JOB class.
The algorithm for system-generated JOB classes (i.e., 'CLASS =' not specified on the JOB card) has been enhanced at the NWRDC to increase system performance. Three resources are the controlling factors in determining the class to be system assigned:
1. REGION size
2. TAPE Drive use count
3. CPU time specified for JOB execution
REGION size is controlled by the 'REGION=' parameter on the JOB or EXEC statement or by the system default of 4096K bytes.
TAPE DRIVE quantity can be reduced by the use of the 'UNIT=AFF=' parameter or by using disk space instead of magnetic tape where applicable.
The quantity of CPU time is specified with the 'TIME=' parameter on the JOB card as defined in the JCL manual. The system default for time is 30 minutes (A VERY LARGE VALUE).
The user specified JOB classes provided by the NWRDC are:
CLASS Value | Meaning |
V | Highest priority (see Job Pricing Differential table) - can require any combination of resources |
E | High priority (see Job Pricing Differential table) - can require any combination of resources |
C | Low priority - typically overnight (see Job Pricing Differential table) - can require any combination of resources |
G | Lowest priority - typically weekend (see Job Pricing Differential table) - can require any combination of resources |
D | for DEVELOPMENT and can use up to four tape drives and up to four megabyte of region. CLASS D is also generated by the system under the same conditions. |
P | |
F | is for Cross Domain FILE TRANSFER jobs. |
Warning: class codes should not be used to schedule jobs.
Class G/Priority "0" Jobs:
Executes on weekends, after 2100 on Friday, and
Cancelled from the system if not completed by 0220 Monday morning.
Class C/Priority "1" Jobs:
Executes only between 2100 and 02:20 Monday, between 2100 and 0500 Tuesday through Friday (and on weekends)
Jobs not started by 0500(0220 Monday) will be held until the following 2100.
Jobs still in execution at 0500 Tuesday, Wednesday, Thursday or Friday are subject to being cancelled.
Jobs still in execution at 0220 Monday will be cancelled due to system IPL.
Calculated Job Priorities
Calculated job execution priorities will be based upon the following table:
CALCULATED PRIORITY | CPU SECONDS | TIME KEYWORD |
11 | 1 | TIME=(,1) |
10 | 2 | TIME=(,2) |
9 | 5 | TIME=(,5) |
8 | 10 | TIME=(,10) |
7 | 20 | TIME=(,20) |
6 | 60 | TIME=1 |
5 | 300 | TIME=5 |
4 | 600 | TIME=10 |
3 | >600 | >TIME=10 |
If the 'CLASS=' parameter is omitted from the JOB card, a class will be generated for the job. The generated classes are 1 through 7, L, A, and D. CLASS 1 jobs, for example, are generated under the following conditions: 0 tape usage, less than one megabyte region size and no more than ten seconds of CPU time. The table that follows describes the requirements for all generated classes.
Generated Class | Time in Seconds | Max Tape Drives Allocated |
1 | 1 - 10 | 0 |
2 | 11 - 30 | 0 |
3 | 31 - 60 | 0 |
4 | 61 - 1800 | 0 |
5 | 1 - 10 | 1 |
6 | 11 - 30 | 1 |
7 | 31 - 300 | 1 |
D | ANY | 4 |
L | ANY | 5 |
A | RESOURCE UNAVAILABLE | JOB WILL NEVER EXECUTE, CHECK JCL |
NWHOLD: A Technique for Holding Jobs
Use of CONTROL-M is recommended for scheduling jobs to start after a certain time
Hold Data Set Names
NWR maintains allocations for thirty-one datasets: twenty-four hourly datasets and seven day-of-the-week datasets. The dataset names are as follows:
NWR.HOLD.UNTIL8AM | NWR.HOLD.UNTIL8PM | NWR.HOLD.UNTILSUN |
NWR.HOLD.UNTIL9AM | NWR.HOLD.UNTIL9PM | NWR.HOLD.UNTILMON |
NWR.HOLD.UNTIL10A | NWR.HOLD.UNTIL10P | NWR.HOLD.UNTILTUE |
NWR.HOLD.UNTIL11A | NWR.HOLD.UNTIL11P | NWR.HOLD.UNTILWED |
NWR.HOLD.UNTIL0PM | NWR.HOLD.UNTIL0AM | NWR.HOLD.UNTILTHU |
NWR.HOLD.UNTIL1PM | NWR.HOLD.UNTIL1AM | NWR.HOLD.UNTILFRI |
NWR.HOLD.UNTIL2PM | NWR.HOLD.UNTIL2AM | NWR.HOLD.UNTILSAT |
NWR.HOLD.UNTIL3PM | NWR.HOLD.UNTIL3AM | |
NWR.HOLD.UNTIL4PM | NWR.HOLD.UNTIL4AM | |
NWR.HOLD.UNTIL5PM | NWR.HOLD.UNTIL5AM | |
NWR.HOLD.UNTIL6PM | NWR.HOLD.UNTIL6AM | |
NWR.HOLD.UNTIL7PM | NWR.HOLD.UNTIL7AM |
Be sure to use DISP=SHR for all NWR.HOLD.xxxxxx data sets.
You may use one of the “time” data sets and/or one of the “day” data sets to force a delay in the start of your job. For example, if you wanted a job to run sometime after 8 PM on Tuesday, you would add the following JCL to the job anywhere in a job step.
//H1 DD DISP=SHR,DSN=NWR.HOLD.UNTIL8PM
//H2 DD DISP=SHR,DSN=NWR.HOLD.UNTILTUE
Special Note on “DAY HOLD” data sets:
The “day” in question does not start until 8 AM.
So to hold a job until 7 AM on a Friday, the following JCL would be required:
//H1 DD DISP=SHR,DSN=NWR.HOLD.UNTIL7AM
//H2 DD DISP=SHR,DSN=NWR.HOLD.UNTILTHU
System-Managed Storage
All Customer data sets and volumes are SMS managed
Storage Class
Storage class is an optional parameter. For most NWRDC institutions, if not entered, the storage class is assigned automatically by SMS ACS routines.
Storage Groups
Institutions that require multiple disk volumes will be assigned unique SGIIXXX names that related to a specific group of volumes, where II is an institution code and XXX will be chosen by the customer. XXX is usually STD or DB2 but can be anything the institution wants.
Note: DASD volumes can be viewed by Storage Group by using the Quick-Ref product.
Management class is an optional parameter. If not supplied, non-DB2 data will default to the NWRDC default management class of MCDEFALT which will expire a dataset 7 years after last usage. The current default for disk data sets is permanent retention. MCDEFALT is an attempt to control the lifespan of data sets that are migrated by HSM, then not used again. Data sets that are historical in nature and must be retained beyond 7 years after last usage should be allocated or subsequently altered to management class MC4EVER. If not supplied, DB2 data will default to the management class of MCNOBAK, which differs from MCDEFALT as follows: data sets are permanent, they will never expire; no autobackup. For DB2, backup and recovery is performed via DB2 services. Customers are responsible for image copy (full is recommended) and recovery procedures for their tablespaces to correspond to the 60 day recovery window.
Management Classes
For migration: eligible for auto-migration to level 1(disk) after 10 days non-usage; eligible for auto-migration to level 2(tape) after 14 days non-usage; both auto-migration and migration by command are supported.
MCDEFALT | default mgmt class; assigned if none explicitly selected. |
MCCMDMIG | migration by command only, no automigration. |
MCMONTH | temp data sets expire 45 days after last usage;two backups kept. |
MCNOLV1 | no level 1 migration, goes directly to level 2 after 10days non-usage, intended primarily for GDGs |
MCNOMIG | perm data sets will never expire; no command or auto migration |
MCNOBAK | permanent; data sets will never expire; no autobackup,command backup only. This is the default managementclass for all BD2 data. |
MCSLOWMG | slowmig, automig 90 days after last usage directly to lvl 2, no lvl 1 |
MCSTLP | short term, low-priority; automatically assigned to TSOlist and log data sets; data set will expire 105 daysafter last usage; no autobackup, command backup only, 1backup kept. |
MCTEMP | temporary; data sets will expire 4 days from creation or one day from last usage, whichever comes later;command migration only, no automigration; no backups. |
MC4EVER | permanent; data sets will never expire. |
DCTINY | for sequential datasets of approximately 50,000 bytes. |
DCSMALL | for sequential datasets of approximately 750,000 bytes |
DCMANY | will allow datasets to span several DASD volumes. |
TMS Expiration and Retention Dates TMS selects volumes for deletion based upon the expiration date supplied via JCL parameter EXPDT or the retention period supplied via JCL parameter RETPD. The value supplied via RETPD is converted to a date. If no EXPDT or RETPD value is supplied, then the TMS default of 7 day retention takes effect. However, if the step abends, open output tapes default to 2-day retention only.
Certain values supplied for EXPDT are TMS codes, rather than true dates. The only currently valid TMS codes are explained below:
98000 | Used for external tapes unknown to TMS; used only when reading a tape created by an outside agency or when writing to a non-NWRDC tape volume |
98nnn | Retain for nnn days before scratching |
99000 | CATLG controlled; i.e., when the dataset is uncataloged, the tape will subsequently be scratched |
99nnn | Retain for nnn cycles before scratching; this should only be used with datasets with the same name, not with generation data sets |
99365 | Retain permanently |