Job Class2
Enhanced Definition
Key Characteristics
- * Single-character designation (A-Z, 0-9) - 36 possible classes * Controls job selection from input queue * Influences scheduling priority and execution order * Determines initiator assignment and availability * Groups similar workload types for management * Specified on JOB statement CLASS parameter * Can be changed by operators or automation
-
Class Usage Patterns:
- *Production Classes (A-D):* * Critical business processing jobs * Highest priority execution * Guaranteed resources * Restricted to production datasets * Monitored service levels
- *Development/Test Classes (T-Z):* * Application development and testing * Lower priority than production * Limited resource consumption * Access to test datasets * Flexible scheduling
- *Resource-Based Classes:* * Short Jobs (Q, S): < 5 minutes execution * Medium Jobs (M): 5-30 minutes execution * Long-Running (L, X): > 30 minutes execution * High CPU (H): Compute-intensive processing * High I/O (I): Data-intensive operations
- *Special Purpose Classes:* * Overnight Batch (N): Night processing window * Weekend Processing (W): End-of-week jobs * Month-End (E): Financial close activities * Ad-hoc/Emergency (Z): Urgent requests
-
Class Assignment Factors:
- *Job Characteristics:* * Estimated run time and duration * CPU requirements and intensity * Memory (region) requirements * DASD space needs * Tape drive requirements * Print volume expectations
- *Business Requirements:* * Business criticality and priority * Service level agreements (SLAs) * Time-of-day restrictions * Processing window constraints * Dependencies on other jobs
- *Operational Considerations:* * System capacity at run time * Resource contention management * Load balancing requirements * Backup and recovery windows
- JCL Specification
-
`jcl //JOBNAME JOB (ACCT),'DESCRIPTION', // CLASS=A, ← Production class // MSGCLASS=X, ← Output class // MSGLEVEL=(1,1) - //TESTJOB JOB (DEVACCT),'TEST RUN', // CLASS=T, ← Test class // TIME=(,5), ← 5 minute limit // REGION=4M
-
//LONGJOB JOB (BATCHACCT),'MONTH END',
// CLASS=L, ← Long-running class
// TIME=1440, ← 24 hour limit
// NOTIFY=&SYSUID
` -
Initiator Configuration:
- *Initiator Setup:* * Each initiator assigned to one or more classes * Multiple initiators can serve same class * Class-based selection priority * Dynamic initiator class changes * Maximum concurrent jobs per class
-
Example Configuration:
Initiator 1: Classes A,B,C (Production - Priority 15) Initiator 2: Classes A,B,C (Production - Priority 15) Initiator 3: Classes D,M (Medium - Priority 10) Initiator 4: Classes L,X (Long-running - Priority 5) Initiator 5: Classes T,Z (Test/Dev - Priority 3) -
Selection Algorithm:* Higher class priority selected first * Within class: submission time order * Job priority parameter override * Affinity and dependency considerations * Resource availability requirements
-
Class Management:
-
Static Assignment:* Defined in JCL CLASS parameter * Set by application standards * Based on job categories * Documented in operations procedures
-
Dynamic Class Changes:* Operator commands:
$T J=jobname,Q=class* Automated class routing * WLM-based adjustments * Time-of-day reclassification * Emergency priority escalation -
Monitoring and Tuning:* Class utilization reports * Queue depth by class * Service level attainment * Resource consumption patterns * Initiator efficiency analysis
-
Integration with WLM:
-
Service Classes:* Job class maps to WLM service class * Performance goals by class * Resource group assignment * Velocity goals and importance * Multi-level priority structure
-
Policy Management:* Different policies by time period * Business importance mapping * Resource distribution goals * Response time objectives
-
Alphabetic Scheme:
A = Critical Production (Priority 15) B = Standard Production (Priority 12) C = Medium Priority (Priority 10) D = Development/Test (Priority 8) E = Long-Running Batch (Priority 6) F-Z = Special purposes -
Numeric/Mixed Scheme:
0-3 = Production levels 4-6 = Development tiers 7-9 = Special processing A-Z = Application-specific -
Class-Related JES2 Commands:
-
Display Class Information:
$DJQ,Q=A Display jobs in class A $DI Display initiator status $DJOBQ Display all job queues -
Modify Class Assignments:
$T J=jobname,Q=A Change job to class A $T I=initid,CL=ABC Modify initiator classes $P I=initid Stop initiator $S I=initid,CL=T Start initiator for class T -
Class Priority Changes:
$T J=jobname,P=15 Change job priority -
Best Practices:
-
Class Design:* Limit number of classes (8-12 typical) * Clear naming conventions * Documented class purposes * Balance between granularity and simplicity * Regular review and optimization
-
Operations:* Monitor class queue depths * Balance initiator assignments * Document emergency procedures * Establish class change authorities * Track service level by class
-
Application Standards:* Standard class assignments by application * Developer guidelines for class selection * Review process for class changes * Documentation in run books
-
Performance Considerations:
-
Queue Management:* Avoid class starvation * Balance short and long jobs * Prevent queue backups * Monitor hold/wait conditions
-
Resource Optimization:* Match initiators to workload * Consider time-of-day patterns * Adjust for month-end processing * Plan for peak periods
-
Capacity Planning:* Analyze class trends * Forecast growth by class * Plan initiator capacity * Consider specialty engines (zIIP, zAAP)
-
Troubleshooting:
- * Jobs stuck in queue - check initiator availability * Wrong class assignment - verify JCL standards * Class starvation - adjust initiator mix * Priority inversion - review class priorities * Resource contention - analyze concurrent jobs
-
Diagnostic Commands:
$DJOBQ Review all queues $DI Check initiator status $DA Display active jobs $DJ,Q=class Focus on specific class
Use Cases
-
Production Workload Segregation:* Separate critical from non-critical jobs * Ensure production processing windows * Prevent test jobs from impacting production * Guarantee resources for business-critical work
-
Resource Management:* Control long-running job impact * Balance I/O and CPU intensive work * Manage tape drive allocation * Prevent system resource exhaustion
-
Business Priority Implementation:* Express business importance through class * Different service levels by class * Time-critical processing prioritization * Customer-specific processing classes
-
Operational Control:* Enable/disable classes for maintenance * Emergency job processing * Scheduled downtime management * Disaster recovery prioritization
-
Capacity Planning:* Workload classification for analysis * Growth trending by job category * Resource forecasting by class * Chargeback by processing type
-
See Also:* Job - Unit of work assigned to class * Job Step - Individual program execution within job * Initiator - Executes jobs from class queues * WLM (Workload Manager) - Dynamic resource management * JES2/JES3 - Job entry subsystems managing classes * JCL (Job Control Language) - Language specifying class * Batch Processing - Primary context for job classes
Related Concepts
Closely Related:
* Job: Container for job steps assigned to class
* JES2/JES3: Job entry subsystem managing classes
* Initiator: Executes jobs from assigned classes
* JCL: Specifies class on JOB statement
* WLM: Maps classes to service policiesSupporting Concepts:
* Job Priority: Works with class for selection
* Scheduling: Class-based job scheduling
* Batch Processing: Primary use of job classes
* Resource Management: Class-based allocation
* System Monitoring: Class performance tracking