Modernization Hub

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 policies

Supporting 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