Simulation and Forecasting Facility

This chapter includes the following topics:

Overview of Simulation and Forecasting Facility

The Simulation and Forecasting facility consists of two components.

  • Simulation procedure CTMSIM

  • Tape Pull List procedure CTMTAPUL

Simulation procedure CTMSIM tests the potential impact of proposed changes to the configuration or production environment. It answers "What if?" questions, such as:

"What if we ...

  • add or remove four tape drives from the system?"

  • increase the CPU power by 30%?"

  • run a particular set of applications daily instead of weekly?"

The Simulation procedure can also be used to forecast production runs such as the next 24-hour run, end-of-month run, and so on. In this way, possible irregularities in the schedule can be foreseen.

The CTMTAPUL Tape Pull List procedure creates a report of all tapes to be mounted for a specific period. By running the procedure on a daily basis, all tapes required for the daily production run can be prepared in advance for the operator or the robotic tape library.

The Tape Pull List procedure uses the output of the Simulation procedure as input. Therefore, the Simulation procedure must be executed before the Tape Pull List procedure can be executed. However, the Simulation procedure can be executed without executing the Tape Pull List procedure.

Simulation Procedure CTMSIM

The CTMSIM simulation procedure provides basic simulation capabilities that are limited to Control-M for z/OS. Control-M/Forecast is a more comprehensive tool with advance capabilities and CTMSIM users are advised to use it instead. Control-M/Forecast is fully described in the Control-M documentation set in the following guides:

  • Control-M Getting Started Guide

  • Control-M User Guide

  • Control-M Administrator Guide

  • Control-M Utilities Guide

However, users requiring the Tape Pull List utility (CTMTAPUL), described in the following section, must still execute the CTMSIM simulation procedure, described in this section, since the Tape Pull List procedure uses files from CTMSIM as input.

The Simulation procedure mirrors the Control-M monitor flow for a specified period without actual job submission and without output processing. It takes into consideration all scheduling criteria including prerequisite conditions, time limits, quantitative, and Control resources.

Control-M and IOA files used as input to the simulation process are not updated as a result of this process. The statuses of the files after simulation are written to special simulation output files. The simulation assumes that each job ended execution with a condition code of 0.

The following Control-M and IOA files are used as input in the Simulation procedure. These files may either be actual production files or special files created specifically for forecasting purposes.

Table 265 Files Used as Input during Simulation

File

Description

AJF

Active Jobs file

RES

Control-M Resources file

CND

IOA Conditions file

STAT

Control-M Statistics file

The simulation produces the following output files:

Table 266 Files Produced as Output of Simulation

File

Description

SIMOAJF

Simulation Output Active Jobs file

SIMORES

Simulation Output Resources file

SIMOCND

Simulation Output Conditions file

SIMLOG

Simulation Output Log file

The Simulation procedure may contain several steps prior to the actual simulation processing step, depending on the environment to be used as input to the simulation run. For example

  • It may be desirable to use the production Active Jobs file as input.

  • It may be necessary to simulate the run of a specific day without relating to the current production jobs.

  • It may be necessary to resolve manual conditions prior to the simulation run so that all jobs are submitted.

Activating the Procedure

The procedure can be invoked directly, that is, through // EXEC CTMSIM, or through a job generated by option M3 of the Online Utilities menu.

Option M3 is the preferred method of generating the job stream for the procedure because the Online utility can automatically perform certain necessary preparatory steps (mentioned above). If the Online utility is not used, the user must add these steps, as necessary, to the JCL.

The M3 Online utility is discussed in M3: Prepare Simulation/Tape Pull List Job.

Preparatory Steps

The following preparatory steps must be added, as needed, to the simulation job.

Allocate IOA Conditions File

The DACNDF DD statement references the IOA Conditions file. It may refer to either of the following files:

  • the production IOA Conditions file

    If this file is used, it only needs allocation.

  • a test file used to simulate jobs planned for a future working day

    If a test file is used, an initial job step must allocate and format the simulation Active Jobs file. A date record is then generated for the date of the simulation. A User Daily job step then loads the required job orders into the simulation Active Jobs file.

This preparatory step can be automatically generated through the M3 online utility.

All jobs in the Active Jobs file participate in the simulation. For jobs that are currently executing at the time the simulation is running, it is assumed that they have already executed half of their average elapsed time.

Allocate Control-M Resources File

The DACNDF DD statement references the Control-M Resources file. It may refer to either of the following files:

  • the production Control-M Resources file
    If this file is used, it only needs allocation.

  • a test file, which can be used to define Quantitative resources under simulation, using the IOACND utility

Simulation Parameters

There are two ways of setting parameters for the utility.

Parameters can be passed to the utility using the SIMPARM member in the Control-M PARM library. This member is referenced by the DASIMPRM DD statement in the Simulation procedure, if it is specified in option M3 (Prepare Simulation/Tape Pull List Job) of the Online Utilities.

Alternatively, parameters may be passed to the utility in-line, using the DASIMPRM (or SYSIN) DD statement.

Table 267 Parameters Passed to the Utility by DASIMPRM

Parameter

Description

SIMSTART

Date and time at which the simulation must start, in yymmddhhmm format. Mandatory.

SIMEND

Date and time at which the simulation must end, in yymmddhhmm format. Mandatory.

Ordinarily the interval between specified SIMSTART and SIMEND values should not exceed a 24 hour period because there is no mechanism to simulate New Day processing for the next day. However, it is possible to specify a larger interval if one is required to enable existing jobs to complete.

INTERVAL mm

Simulation interval, in minutes. The simulation "clock" advances by the interval specified. The shorter the interval, the more accurate the simulation, but the longer the simulation takes to run. The specified interval must not exceed one working day. Mandatory.

NEWJOB

For a job that has no execution statistics, this statement is used to indicate the expected execution time of the job. Optional.

If the simulation encounters a job without statistics and this statement is not supplied, a default execution time of three minutes is used.

The format of the NEWJOB parameter is as follows:

NEWJOB memname EXECTIME mmmm.xx [GROUP groupname][CPUID i]

The following subparameters can be specified:

  • memname – name of the member containing the JCL of the job. This value helps identify the job order in the Active Jobs file. Mandatory.

  • mmmm.xx – expected execution time, where mmmm is the number of minutes and xx is hundredths of minutes. This is the same format used in the sysout Log message of the job. Mandatory.

  • groupname – name of the group to which the job belongs. This value helps identify the job order in the Active Jobs file. Optional.

  • i – CPU ID. In a multiple CPU environment, the job can have different execution times on different CPUs. Therefore, it is useful to specify the expected elapsed time for each CPU on which the job may run. i must have the same value as $SIGN, which is described in "%%$SIGN" in Non-Date System Variables. Optional.

OLDJOB

For a job with execution statistics, this statement can be used to override the statistically estimated execution time. For example, a longer execution time can be specified to test the effect of adding more input data to the job. Optional.

Format of the OLDJOB parameter is as follows:

OLDJOB memname EXECTIME mmmm.xx [GROUP groupname][CPUID i]

The same subparameters can be specified for the OLDJOB parameter as those for the NEWJOB parameter (in this table).

ADD

or

DELETE

Add or delete a prerequisite condition of a specific ODATE (original scheduling date) at a specified simulation date and time.

The format of the ADD or DELETE parameter is as follows:

{ADD|DELETE} COND condname odate ONDAYTIME yymmddhhmm

The following subparameters can be specified:

  • ADD|DELETE – action to be performed. Mandatory.

  • condname – name of the condition to be added or deleted. Mandatory.

  • odate – original scheduling date associated with the condition. Mandatory.

  • yymmddhhmm – simulation date and time at which the condition must be added or deleted. Mandatory.

CHANGE RESOURCE

Change the quantity of a given resource at a specified simulation date and time.

Format of the CHANGE RESOURCE parameter is as follows:

CHANGE RESOURCE resname quantity ONDAYTIME yymmddhhmm

The following subparameters can be specified:

  • resname – name of the resource whose quantity is to be changed. Mandatory.

  • quantity – change in quantity for the resource. The quantity change can be specified in any of the following formats:

    • nnnn – set the quantity to the specified value

    • +nnnn – add the specified quantity to the current quantity

    • -nnnn – subtract the specified quantity from the current quantity

  • yymmddhhmm – simulation date and time at which the resource quantity must be changed. Optional.

CPUUSEI

Specifies the interval used for producing the CPU Consumption Report. The report also contains the R4HA data (Rolling Four Hours Highest Average CPU Usage) for every LPAR and the overall R4HA. The report is based on the CPU usage of all the jobs ‘executed’ during the Control-M Simulation period. The jobs’ CPU usage, elapsed time, and the LPAR name (where the job runs) are extracted from Control-M Statistics File.

Valid values: 0 – 1440 (in minutes). If set to 0, the CPU Consumption Report is not produced. Default is 60.

The report is produced in the Output DD statement, DACPUST.

For a sample report, see CPU Consumption Report.

Since the same type of reports are generated by CTMSIM, CTMRNSC, and CTMROGR, the CPU usage data forecasted by simulations can easily be compared with actual data and with other forecasted data from other simulations.

Simulations can be performed in advance to reveal unexpected peaks in CPU usage, and then possible alternatives can be considered and simulated to reduce R4HA.

For more information about the CTMRNSC (Produce Night Schedule Report) and CTMROGR (Produce an Overnight Execution Graph) utilities, see the INCONTROL for z/OS Utilities Guide.

Simulation Input Files

The simulation procedure accepts the following input files:

  • Active Jobs file—created in the course of the preparatory steps described in Preparatory Steps

  • Job Execution Statistics file—the DASTAT DDstatement references the Control-M Job Execution Statistics file; this file contains job execution statistics, including the execution elapsed time

  • IOA Conditions file—created in the course of the preparatory steps described in Preparatory Steps

  • Control-M Resources file—created in the course of the preparatory steps described in Preparatory Steps

Simulation Output Files

The simulation run produces the following output files:

  • Simulation Messages file

    The DASIMOUT DDstatement references a sequential file containing a list of the simulation parameters used, and special messages for error codes, warning situations, and so on. In addition, it contains all the SHOUT messages to TSO/ROSCOE users and to the computer operator.

  • SIMLOG—Simulation Log file

    The DALOGOUT DDstatement references a sequential output file in a format similar to that of the IOA Log file.

    At the end of the simulation process, this file contains all the log messages describing events that occurred during the simulation run, for example, JOB SUBMITTED, JOB ENDED OK, or COND xxxx ADDED.

    This file can be used as input to all Control-M reports that are normally produced from the IOA Log file. The standard set of reports produced from the IOA Log can be used to analyze the simulation run. Therefore, it is not necessary to write special simulation reports.

  • SIMOAJF—Active Jobs file

    The DACKPTOU DDstatement references a file in the format of the Active Jobs file. All jobs that were present in the input Active Jobs file are written to this file with the status assigned to them during the simulation run, for example, ENDED OK, EXECUTING, or WAIT SCHEDULE.

    The file can be scanned online or in batch mode using standard Control-M facilities.

  • SIMOCND—Conditions file

    The SIMOCND DDstatement references a file in the format of the IOA Conditions file. All conditions that were present at the end of the simulation run are written to this file.

    The file can be scanned online or in batch mode using standard Control-M facilities.

  • SIMORES—Resources file

    The SIMORES DDstatement references a file in the format of the Control-M Resources file. All Quantitative resources and Control resources that were present at the end of the simulation run are written to this file.

    The file can be scanned online or in batch mode using standard Control-M facilities.

CPU Consumption Report

Copy
 =======================================================================
   CPU USAGE FOR SYSTEM 309F FROM 16/02/23-00:00 UNTIL 16/02/25-00:00
 =======================================================================
  
    TIME (YY/MM/DD HH:MM)             CPUTIME (MIN:SEC)
 ------------------------------------------------------
  16/02/23 16:00 - 16/02/23 17:00     0000:17.01
  16/02/23 17:00 - 16/02/23 18:00     0002:25.93
  16/02/23 18:00 - 16/02/23 19:00     0002:25.93
  16/02/23 23:00 - 16/02/24 00:00     0002:25.93
  16/02/24 00:00 - 16/02/24 01:00     0071:59.16
  16/02/24 01:00 - 16/02/24 02:00     0012:47.51
  16/02/24 02:00 - 16/02/24 03:00     0007:36.51
  16/02/24 03:00 - 16/02/24 04:00     0010:08.32
  16/02/24 04:00 - 16/02/24 05:00     0029:58.11
  16/02/24 05:00 - 16/02/24 06:00     0003:32.93
  
 HIGHEST ROLLING FOUR HOURS AVERAGE (R4HA) CPU CONSUMPTION FOR SYSTEM 309F
 FROM 16/02/24-00:10 TO 16/02/24-04:10  CPU: 001 HR  45 MIN  28.09 SEC
  
 =======================================================================
  CPU USAGE FOR SYSTEM 309D FROM 16/02/23-00:00 UNTIL 16/02/25-00:00
 =======================================================================
  
    TIME (YY/MM/DD HH:MM)             CPUTIME (MIN:SEC)
 ------------------------------------------------------
  16/02/23 22:00 - 16/02/23 23:00     0003:10.15
  16/02/23 23:00 - 16/02/24 00:00     0006:11.22
  16/02/24 00:00 - 16/02/24 01:00     0093:52.05
  16/02/24 01:00 - 16/02/24 02:00     0055:38.92
  16/02/24 02:00 - 16/02/24 03:00     0070:33.37
  16/02/24 03:00 - 16/02/24 04:00     0002:19.80
  16/02/24 04:00 - 16/02/24 05:00     0022:17.05
  16/02/24 05:00 - 16/02/24 06:00     0036:15.20
  16/02/24 06:00 - 16/02/24 07:00     0007:23.49
  16/02/24 07:00 - 16/02/24 08:00     0008:59.29
  16/02/24 08:00 - 16/02/24 09:00     0036:37.08
  16/02/24 09:00 - 16/02/24 10:00     0004:35.60
  
 HIGHEST ROLLING FOUR HOURS AVERAGE (R4HA) CPU CONSUMPTION FOR SYSTEM 309D
 FROM 16/02/23-23:20 TO 16/02/24-03:20  CPU: 003 HR  48 MIN  35.10 SEC
  
 =======================================================================
  CPU USAGE FOR SYSTEM ARIS FROM 16/02/23-00:00 UNTIL 16/02/25-00:00
 =======================================================================
  
    TIME (YY/MM/DD HH:MM)             CPUTIME (MIN:SEC)
 ------------------------------------------------------
  16/02/23 23:00 - 16/02/24 00:00     0024:40.52
  16/02/24 00:00 - 16/02/24 01:00     0047:44.40
  16/02/24 01:00 - 16/02/24 02:00     0038:33.55
  16/02/24 02:00 - 16/02/24 03:00     0031:37.88
  16/02/24 03:00 - 16/02/24 04:00     0011:07.80
  16/02/24 04:00 - 16/02/24 05:00     0004:17.37
  16/02/24 05:00 - 16/02/24 06:00     0029:04.60
  16/02/24 06:00 - 16/02/24 07:00     0004:59.32
  16/02/24 07:00 - 16/02/24 08:00     0055:43.25
  16/02/24 08:00 - 16/02/24 09:00     0087:27.11
  16/02/24 09:00 - 16/02/24 10:00     0009:59.00
  16/02/24 10:00 - 16/02/24 11:00     0005:35.25
  16/02/24 11:00 - 16/02/24 12:00     0009:41.53
  
 HIGHEST ROLLING FOUR HOURS AVERAGE (R4HA) CPU CONSUMPTION FOR SYSTEM ARIS
 FROM 16/02/24-05:10 TO 16/02/24-09:10  CPU: 003 HR  00 MIN  39.81 SEC
  
 =======================================================================
  CPU USAGE FOR SYSTEM 308B FROM 16/02/23-00:00 UNTIL 16/02/25-00:00
 =======================================================================
  
    TIME (YY/MM/DD HH:MM)             CPUTIME (MIN:SEC)
 ------------------------------------------------------
  16/02/24 00:00 - 16/02/24 01:00     0067:06.29
  16/02/24 01:00 - 16/02/24 02:00     0024:08.34
  16/02/24 02:00 - 16/02/24 03:00     0007:04.77
  16/02/24 03:00 - 16/02/24 04:00     0006:04.17
  16/02/24 04:00 - 16/02/24 05:00     0011:32.19
  16/02/24 05:00 - 16/02/24 06:00     0019:52.66
  16/02/24 06:00 - 16/02/24 07:00     0003:28.85
  16/02/24 07:00 - 16/02/24 08:00     0029:26.04
  16/02/24 08:00 - 16/02/24 09:00     0031:08.35
  16/02/24 09:00 - 16/02/24 10:00     0003:55.31
  16/02/24 10:00 - 16/02/24 11:00     0021:37.11
  16/02/24 11:00 - 16/02/24 12:00     0042:34.78
  16/02/24 12:00 - 16/02/24 13:00     0006:37.33
  16/02/24 13:00 - 16/02/24 14:00     0000:14.39
  
 HIGHEST ROLLING FOUR HOURS AVERAGE (R4HA) CPU CONSUMPTION FOR SYSTEM 308B
 FROM 16/02/24-00:00 TO 16/02/24-04:00  CPU: 001 HR  44 MIN  23.47 SEC
  
 =====================================================================
 HIGHEST OVERALL ROLLING FOUR HOURS AVERAGE (R4HA) CPU CONSUMPTION
 FROM 16/02/23-23:30 TO 16/02/24-03:30  CPU: 009 HR  36 MIN  35.88 SEC

Control-M Exits and Simulation Processing

The Control-M Simulation and Forecasting facility functions in much the same way as the Control-M monitor, but is activated without performing "real I/O." Therefore, some of the exits activated under the Control-M monitor are also activated during simulation.

Exit CTMX003 (output scanning) is invoked once for each job. The exit does not receive any sysout. Since the simulation assumes that each job ended execution with a condition code of 0, this exit can also be used to add events for certain jobs that end with a nonzero condition code that influences the job flow.

Exit CTMX002 is not activated in simulation mode.

If the same exit is to be used in both the production and simulation environments, it may be necessary to determine which environment is currently active. The MCTSMIND field in the MCT can be checked as follows to determine whether the exit is running under simulation:

Copy
TM     MCTSMIND,MCTSIMYS      ARE WE UNDER SIMULATION?
BO     SKIPPROD               YES, SKIP PRODUCTION LOGIC

Sample Input

Figure 383 Control-M Simulation Exit Screen

Copy
//                EXEC CTMSIM
//SIM.DACKPTIN DD   DSN=XXX.CTM.PROD.TESTAJF,DISP=SHR
//SIM.SYSIN DD   *
SIMSTART 0106060900
SIMEND   0106062200
INTERVAL 15
NEWJOB D4TRY1 EXECTIME 2.30
NEWJOB D4TRY2 EXECTIME 100.00 CPUID 1
NEWJOB D4TRY2 EXECTIME 120.00 CPUID 2
CHANGE RESOURCE TAPE -3 ONDAYTIME 0106061600
ADD COND IR-TAPE-ARRIVED 0606 ONDAYTIME 0106061800
ADD COND END-CICS 0606 ONDAYTIME 0106062100
//
 .  .   SIM076I SIMULATION STARTED
SIMSTART 0112122100
SIMEND   0112122130
INTERVAL 55
ADD  COND TAP-TEST-OK           0606 ONDAYTIME 0106062102
ADD  COND TAP-TEST2-OK          0606 ONDAYTIME 0106062102
ADD  COND PUL2-OK               0606 ONDAYTIME 0106062102
ADD  COND PUL1-OK               0606 ONDAYTIME 0106062102
ADD  COND PUL2-OK               0606 ONDAYTIME 0106062102
NEWJOB ASMMCTD   EXECTIME     0001.00
NEWJOB ASMMCTM   EXECTIME     0001.00
21.00.00 RUN100I CONTROL-M MONITOR STARTED
21.00.00 SIM087W MEMBER PRDJBREG LIBRARY PROD.DAILY.JOBS                             - DEFAULT ELAPSED TIME USED
21.00.00 SIM087W MEMBER PRDJBDAY LIBRARY PROD.DAILY.JOBS                             - DEFAULT ELAPSED TIME USED
21.02.45 CTM567I COND PUL2-OK              ODATE 0606 ADDED
21.02.45 CTM567I COND PUL1-OK              ODATE 0606 ADDED
21.02.45 CTM587I COND PUL2-OK              ODATE 0606 ALREADY EXISTS
21.02.45 CTM567I COND TAP-TEST2-OK         ODATE 0606 ADDED
21.02.45 CTM567I COND TAP-TEST-OK          ODATE 0606 ADDED
21.31.10 SIM098I TASK EXECDAY  DID NOT FINISH EXECUTING
21.31.10 SIM098I TASK PRDTEST  DID NOT FINISH EXECUTING
21.31.10 SIM099I TASK MPMXXX   STILL WAITS SCHEDULE
21.31.10 SIM099I TASK MPMTST   STILL WAITS SCHEDULE
21.31.10 RUN120I CONTROL-M MONITOR SHUTTING DOWN
21.31.10 SIM078I SIMULATION ENDED

Analyzing the Simulation Run

The following tools can be used to analyze the simulation run and to diagnose problems that may have occurred during simulation processing.

  • output of the Simulation Run

  • output of the KSL Step

  • Night Schedule Report

  • Online Simulation Environment

  • the CTMRAFL utility

These tools are described below.

Output of the Simulation Run

The DASIMOUT DD statement references summary information about the simulation run. It specifies which jobs ran, which are still in WAIT SCHEDULE status, and which are still executing when the simulation terminates. The following tools can be used to ascertain why certain jobs remain in WAIT SCHEDULE status when the simulation run is terminated.

Output of the KSL Step

The REP3LEFT KSL script can be executed after the simulation step. REP3LEFT generates a report that shows the reasons why certain jobs are still in WAIT SCHEDULE status at the end of the simulation run. This report can be requested as an option through the M3 Online utility.

Night Schedule Report

This report provides a summary of each job that fell within the time interval of the simulation run. This report can be requested as an option through the M3 Online utility.

Online Simulation Environment

A special online environment can be created for the allocation of the files written by the simulation run. The online environment must include the following allocations:

Table 268 Online Simulation Environment File Allocations

Allocation

Description

DACKPT DD statement

Allocated to file SIMOAJF

DACNDF DD statement

Allocated to file SIMORES

DACNDF DD statement

Allocated to file SIMOCND

DALOG DD statement

Allocated to file SIMLOG

The online environment can be used to determine not only which jobs were submitted, but which jobs are waiting to be scheduled and why they remained in WAIT SCHEDULE status at the termination of the simulation run.

The CTMRAFL Utility

The CTMRAFL utility, which is described in the INCONTROL for z/OS Utilities Guide, can be run on the simulation input Active Jobs file to obtain information on job dependencies and manual conditions. The CTMRAFL utility does not check the IOA Conditions file. Therefore, conditions listed as "manual conditions" may actually exist in the IOA Conditions file.

Handling Manual Conditions for Simulation

Perform the following steps to incorporate manual conditions into the IOA Conditions file that is used in the simulation procedure.

  1. Create a Conditions file and a Manual Conditions file to be used for simulation only. You can use the FORMCND and FORMNRS members in the IOA INSTALL library to do this. The file name CND can be changed to SIMCND. The file names NRS and NSN can be changed to SIMNRS and SIMNSN respectively.

  2. Using the CTMCOPRS utility, copy the contents of the production IOA Conditions file into the simulation Conditions file created in Step 1.

  3. Integrate the IOALDNRS utility into the standard CTMSIM procedure so that it runs against the simulation Active Jobs File, which has been loaded with simulation jobs, to load the manual conditions into the simulation NRS file SIMNRS.

    Specify the following overrides when using the IOALDNRS procedure:

    Table 269 Overrides To Be Specified on IOALDNRS

    DDname

    DSname Suffix

    Override Suffix

    DANRES

    NRS

    SIMNRS

    DANSINC

    NSN

    SIMNSN

    DACNDF

    CND

    SIMCND

  4. Integrate the MAYBEJOB job, which is in the Control-M JCL library, into the standard CTMSIM procedure to add the required manual Maybe conditions to the simulation Conditions file.

    Specify the following overrides when running MAYBEJOB:

    Table 270 Overrides To Be Specified on MAYBEJOB

    DDname

    DSname Suffix

    Override Suffix

    DANRES

    NRS

    SIMNRS

    DANSINC

    NSN

    SIMNSN

  5. Specify the following override for the simulation step:

    Table 271 Override To Be Specified for Simulation Step

    DDname

    DSname Suffix

    Override Suffix

    DACNDF

    CND

    SIMCND

The CTMTAPUL Tape Pull List Procedure

The Tape Pull List procedure creates a list of all tapes to be mounted in a specified period. The list can be sorted and edited in various ways, such as

  • all tapes to be mounted, sorted by the expected mount time

  • all tapes to be mounted, sorted by volume serial number

It is highly recommended that the simulation be run from the current time, that is, not from a time in the future. Otherwise, the Tape Pull list results may be inaccurate because new tape files may be cataloged in the time remaining before the start of the simulation run.

The procedure takes into account the expected order of job execution and the order of creation of tape data sets.

The procedure also does the following:

  • checks the syntax of all AutoEdit statements in all jobs that are planned for the given period

  • checks the JCL syntax

  • produces a list of data sets that are still missing for the execution.

    These are usually input data sets due to arrive, but they may be JCL execution errors

For the Tape Pull List procedure to be executed properly, the internal reader (INTRDR) must have authority to submit jobs.

The Tape Pull List procedure uses files from the Simulation procedure as input. In preparation for the Tape Pull List procedure, run the Simulation procedure using the production Control-M Active Jobs file, Control-M Resources file, and IOA Conditions file.

The Tape Pull List procedure works as follows:

  • The procedure looks for "SUBMISSION" messages in the simulation output LOG file.

    • For each submission message, it looks for the appropriate job having a WAIT SCHEDULE status on the simulation input Active Jobs file.

    • If a job is found, the Tape Pull List procedure actually submits the job with the TYPRUN=SCAN parameter specification, reads the SYSOUT of the job, retrieves the data set information, and produces the required reports.

    The procedure recognizes tape data sets by either the appropriate unit specification in the JCL, such as UNIT=TAPE, or by retrieving information from the system catalog. It is therefore not necessary to have all tape data sets cataloged in the MVS catalog.

    A highlighted warning message appears on the operator console while the jobs are being submitted. During this stage, the operator console may display several messages regarding the job submission. The highlighted message disappears at the end of this stage.

    The procedure can detect that a certain tape is used by more than one job, and which job creates it, as illustrated in the following example.

    Job A creates a new generation of a tape data set:

    Copy
    //OUTUPD DD DSN=PFX.DATA(+1),DISP=(,CATLG),...

    Job B, a successor of Job A, accesses the same data set:

    Copy
    //INUPD DD DSN=PFX.DATA(0),DISP=SHR

    The procedure detects that Job A is the creator of the data set used by Job B and reports the same tape volser for both jobs.

  • After the job sysout has been analyzed, the sysout is deleted from spool.

  • The next stage of the procedure produces reports according to the requested parameters.

Activating the Tape Pull List Procedure

The Tape Pull List procedure is activated as follows:

Copy
//        EXEC CTMTAPUL
//TAPULIN DD   *
parameters

Tape Pull List Parameters

There are two ways of setting parameters for the utility.

Parameters can be passed to the Tape Pull List utility using the TAPULPRM member in the Control-M PARM library. This member is referenced by the TAPULIN DD statement in the Tape Pull List procedure, CTMTAPUL, if it is specified in option M3 (Prepare Simulation/Tape Pull List Job) of the Online Utilities.

Alternatively, parameters may be passed to the utility in-line, using the TAPULIN DD statement.

Table 272 CTMTAPUL Subparameters

Subparameter

Description

REPBYVOL

Produce a report sorted by volume serial number (volser). All tapes from the tape library are included.

REPBYTIME

Produce a report sorted by the expected mount time.

REPBYJOB

Produce a report sorted by job name.

REPBYDSN

Produce a report sorted by data set name.

JCLFILE {YES|NO|ONLY}

Whether a copy of every submitted job is written to the file referenced by the DAJCLOUT DD statement.

Valid values are:

  • YES – A copy of every submitted job is written to the file referenced by the DAJCLOUT DDstatement.

  • NO – A copy of every submitted job is not written to the file referenced by the DAJCLOUT DDstatement. Default.

  • ONLY – A copy of every submitted job is written to the file referenced by the DAJCLOUT DDstatement, but

    • the procedure does not submit the job

    • the Tape Pull reports are not created

    • the procedure is run to create the JCL file only

When dealing with submitted jobs, the utility, for internal processing purposes, inserts the following accounting code into the jobcard of the job:

Copy
CTM-FORCE-TPLNM

When operating under JES3, the following statement is also inserted:

Copy
//*NET ID=AESUSER

IGNORE DSN dsn

Data set name (or prefix) that must not appear in the report. If the last character of dsn is *, it is treated as a prefix.

IGNORE JOB jobname

Job name (or prefix) that must not appear in the report. If the last character of jobname is *, it is treated as a prefix.

The Tape Pull List job can be prepared using the (ISPF) Simulation panel (Option M3 in the IOA Online Utilities menu). A special section of the panel is designated for Tape Pull List parameters. If you want to run the Tape Pull List procedure:

Begin

  1. Type Y in the TAPE PULL LIST field.

  2. Type Y in the field next to the desired type of report.

The default control parameters member name appears on the screen. This member contains IGNORE statements (procedure parameters). JOB/SCAN and PRO/JCL parameters are discussed in JOB/SCAN, PRO/JCL, DOCU/TEXT Interface.

After filling in the parameters, enter the edited JCL of a job to run the simulation and the procedure. You can submit it, or save it for future use.

CTMTAPUL DD Statements

The following DD statements are used by procedure CTMTAPUL:

Table 273 DD statements used by CTMTAPUL

DD Statement

Description

DALOGIN

Output Log file of the Simulation facility, which is input for the Tape Pull List procedure.

DACKPSOU

Output Active Jobs file of the Simulation facility, which is input for the Tape Pull List procedure

DACKPTIN

Active Jobs file used as input to the simulation, but remains unmodified.

TAPULIN

Procedure parameters.

DATAPNAM

Member containing a list of local names used by the site to describe tape units and cassettes or cartridges.

The TAPNAM member in the Control-M PARM library contains a sample list of local names used by the data center to describe tapes, cassettes, cartridges and DASD units. Control-M recognizes IBM-supplied names such as 3490, which do not need to be specified.

This member is referenced by this DATAPNAM DD statement in the Tape Pull List procedure, CTMTAPUL.

The format of each line in the list is:

  • Columns 1 through 8 – Unit name

  • Column 9 – One of the following indicators:

    • T – Tape

    • C – Cassette or Cartridge

    • D – DASD

DAREPOUT

Reports output.

TAPULOUT

Messages (of the procedure).

DAJCLOUT

Job stream of the jobs that is submitted during the specified period. For more information, see the following section, "JOB/SCAN, PRO/JCL, DOCU/TEXT Interface."

JOB/SCAN, PRO/JCL, DOCU/TEXT Interface

When the JCLFILE parameter is specified, every job that is submitted by the procedure for JCL scan is also written to the DAJCLOUT DD statement. At the end of execution of the procedure, this data set (if allocated) contains all jobs that are submitted during the execution period according to the order of submission. This file can be used as input to JOB/SCAN, PRO/JCL, or DOCU/TEXT.

In sites using the JOB/SCAN, PRO/JCL, DOCU/TEXT Interface, the lower portion of the M3 Online utility, which is described in M3: Prepare Simulation/Tape Pull List Job, contains INVOKE JOB/SCAN parameters.

Problem Determination for Tape Pull List Reports

The following conditions must be satisfied before the Tape Pull List procedure can forecast tapes for a specific job:

  • The submission message must be present in the simulation output Log file.

  • The corresponding job has a WAIT SCHEDULE status in the simulation input Active Jobs file.

Reports are not produced if one or more of the following situations exist:

  • None of the "submitted" jobs required tapes.

  • Jobs requiring tapes were not "submitted" by the simulation because their submission criteria were not satisfied.

  • An invalid Active Jobs file was specified as an input for the Tape Pull List procedure.

  • An invalid Log file was specified as an input for the Tape Pull List procedure.

  • JCLFILE ONLY was specified as an input parameter for the procedure.

  • No reports were requested from the procedure through the input parameters, that is, the default was "no reports".

  • The procedure does not recognize tape data sets. For more information, see the description of the Tape Pull list utility in the discussion of Control-M customization in the INCONTROL for z/OS Installation Guide.

Sample Tape Pull List Reports

The following pages show a series of samples of reports produced by CTMTAPUL. In these samples, when the values M-N or M-O appear in the DISP (disposition) column, they signify a disposition of MOD, either as a NEW (M-N) or OLD (M-O) data set.

Figure 384 Sample Tape Pull List Report 1

Copy
PRODUCED BY CONTROL-M PROD         TAPE     PULL   LIST
BMC SOFTWARE,INC.                 ====================
                                                                                                                       
JOBNAME  USER  ODATE  TIME  MEMNAME  VOLSER LAB# TYPE DISP DSNAME                     PROCNAME STEPNAME   DDNAME       
-----------------------------------------------------------------------------------------------------------------
SMFSAVE  M05   060601 09:06 SMFSAVE  110050 0001 T    M-O  BKP.MONTH.CONT02(+0)                STEP3      TAPE1        
                                     110051      T                                                                     
                                     110048 0001 T    M-O  BKP.MONTH.CONT02(-1)                STEP3      TAPE2        
                                     110049      T                                                                     
                                     110058 0001 T    M-O  BKP.MONTH.CONTO2(-2)                STEP3      TAPE3        
                                     110059      T                                                                     
PRDINPUT M05   060601 09:02 PRDINPUT 996713 0001 T    NEW  PRD.TP.FILE1(+1)                    ST1        DD1          
                                     S#0001 0001 C    NEW  PRDW.FILE.GDG.TBLM1(+1)             BADSTEP    BADD1        
                                     100047 0001 T    M-O  BKP.WEEK.CONT01(-2)                 ASTEP1     OUT0         
PRDUPDT1 M05   060601 09:09 PRDUPDT1 114003 0001 T    OLD  PRDW.FILE.GDG.TBL11(+0)             RES        TAP1GDG0     
                                     114002 0001 T    OLD  PRDW.FILE.GDG.TBL11(-1)             RES        TAP1GDG2     
                                     S#0004 0001 T    NEW  BKP.MONTH.CONT01(+1)       RESTORE  CYCLIC     DACYCT       
                                     114003 0001 T    OLD  PRDW.FILE.GDG.TBL11(+0)    RESTORE  CYCLIC     TAPEGDG0     
                                     $#0005 0001 C    NEW  PRDO.TP.UPDT1              RESTORE  CYCLIC     CASSFILE     
PRDRPT2C M05   060601 09:19 PRDRPT2C $#0006 0001 T    NEW  PRD.TP.DAILY.REPORTS                ASTEP1     OUT          
                                     113492 0001 T    OLD  PRD.CART.RPT2C             BACKUP   CYCLIC     DACYCT       
                                     $#0007 0001 T    NEW  BKP.MONTH.CONT02(+1)       BACKUP   CYCLIC     DACYCT       
PRDRPT2D M05   060601 09:22 PRDRPT2D 114003 0001 T    OLD  PRDW.FILE.GDG.TBL11(+0)             ST1        TAPE0        
                                     T00001 0001 T    NEW  PRD.SNG1912.TAPE1(+1)               ST1        TAPE1        
                                     T00002 0002 T    NEW  PRD.SNG1912.TAPE1(+2)               ST1        TAPE11       
                                     994529 0001 T    NEW  PRDW.FILE.GDG.TBL21(+0)             ST2        TAPE0        
                                     997892 0003 T    NEW  PRD.SNG1912.TAPE2(+1)               ST2        TAPE2        
                                     S#0008 0001 T    NEW  &&NEWTEMP                           ST2        TAPETMP      
                                     996638      T    NEW  BKP.MONTH.CONT01(+3)                ST2        TAPE8O2      
PRDEXE2E M05   060601 09:25 PRDEXE2E T00002 0002 T    OLD  PRD.SNG1912.TAPE1(+0)               STEP1      INTAPE1      
                                     T00001 0001 T    OLD  PRD.SNG1912.TAPE1(-1)               STEP1      INTAPE11     
                                     S#0007 0001 T    OLD  BKP.MONTH.CONT02(+0)                STEP2      TAPE5        
                                     110050 0001 T    OLD  BKP.MONTH.CONT02(-1)                STEP2      TAPE6        
                                     110051      T                                                                     
                                     110048 0001 T    OLD  BKP.MONTH.CONT02(-2)                STEP2      TAPE7        
                                     110049      T                                                                     
                                     110058 0001 T    OLD BKP.MONTH.CONT02(-3)                 STEP2      TAPE8        
                                     110059      T                                                                     
                                     110056 0001 T    OLD  BKP.MONTH.CONT02(-4)                STEP2      TAPE9        
                                     110057      T                                                                     
                                                                                
SORTBY JOBNAME (REPBYJOB)                                                       

Figure 385 Sample Tape Pull List Report 2

Copy
 PRODUCED BY CONTROL-M PROD               TAPE    PULL   LIST
 BMC SOFTWARE, INC.                       ====================                          
 DSNAME                     JOBNAME  MEMNAME  VOLSER DISP TYPE PROCNAME STEPNAME DDNAME
 ---------------------------------------------------------------------------------------
 &&NEWTEMP                  PRDRPT2D PRDRPT2D S#0008 NEW  T             ST2      TAPETMP
 BKP.MONTH.CONT01(+1)       PRDUPDT1 PRDUPDT1 S#0004 NEW  T    RESTORE  CYCLIC   DACYCT 
 BKP.MONTH.CONT01(+3)       PRDRPT2D PRDRPT2D 996638 NEW  T             ST2      TAPE8O2
 BKP.MONTH.CONT01(+0)       SMFSAVE  SMFSAVE  110050 M-O  T             STEP3    TAPE1
                                              110051 M-O  T             STEP3    TAPE1
                            PRDEXE2E PRDEXE2E S#0007 OLD  T             STEP2    TAPE5
 BKP.MONTH.CONT02(+1)       PRDRPT2C PRDRPT2C S#0007 NEW  T    BACKUP   CYCLIC   DACYCT
 BKP.MONTH.CONT02(-1)       SMFSAVE  SMFSAVE  110048 M-O  T             STEP3    TAPE2
                            PRDEXE2E PRDEXE2E 110050 OLD  T             STEP2    TAPE6
                                              110051 OLD  T             STEP2    TAPE6
 BKP.MONTH.CONT02(-2)       SMFSAVE  SMFSAVE  110058 M-O  T             STEP3    TAPE3
                                              110059 M-O  T             STEP3    TAPE3
                            PRDEXE2E PRDEXE2E 110048 OLD  T             STEP2    TAPE7
                                              100049 OLD  T             STEP2    TAPE7
 BKP.MONTH.CONT02(-3)       PRDEXE2E PRDEXE2E 110058 OLD  T             STEP2    TAPE8
                                              110059 OLD  T             STEP2    TAPE8
 BKP.MONTH.CONT02(-4)       PRDEXE2E PRDEXE2E 110056 OLD  T             STEP2    TAPE9
                                              110057 OLD  T             STEP2    TAPE9
 BKP.WEEK.CONT01(-2)        PRDINPUT PRDINPUT 100047 M-O  T             ASTEP1   OUT0 
 PRD.SNG1912.TAPE1(+0)      PRDEXE2E PRDEXE2E T00002 OLD  T             STEP1    INTAPE1
 PRD.SNG1912.TAPE1(+1)      PRDRPT2D PRDRPT2D T00001 NEW  T             ST1      TAPE1
 PRD.SNG1912.TAPE1(+2)      PRDRPT2D PRDRPT2D T00002 NEW  T             ST1      TAPE11
 PRD.SNG1912.TAPE1(-1)      PRDEXE2E PRDEXE2E T00001 OLD  T             STEP1    INTAPE11
 PRD.SNG1912.TAPE2(+0)      PRDEXE2E PRDEXE2E 997892 OLD  T             STEP2    INTAPE2
 PRD.SNG1912.TAPE2(+1)      PRDRPT2D PRDRPT2D 997892 NEW  T             ST2      TAPE2
 PRD.TP.FILE1(+1)           PRDINPUT PRDINPUT 996713 NEW  T             ST1      DD1  
 PRDW.FILE.GDG.TBLM1(+0)    PRDINPUT PRDINPUT S#0001 OLD  C             BADSTEP  BADD2
 PRDW.FILE.GDG.TBLM1(+1)    PRDINPUT PRDINPUT S#0001 NEW  C             BADSTEP  BADD1
 PRDW.FILE.GDG.TBLM8(+1)    PRDINPUT PRDINPUT S#0003 NEW  T             ASTEP1   TAPEGDG8
 PRDW.FILE.GDG.TBL11(+0)    PRDINPUT PRDINPUT 114002 OLD  T             ASTEP1   TAPEGDG0
                            PRDUPDT1 PRDUPDT1 114003 OLD  T             RES      TAP1GDG0
                            PRDRPT2D PRDRPT2D 114003 OLD  T             ST1      TAPE0
                                              T00002 NEW  T             ST1      TAPE12
 PRDW.FILE.GDG.TBL11(+1)    PRDINPUT PRDINPUT 114003 NEW  T             ASTEP1   TAPEGDG2
 PRDW.FILE.GDG.TBL11(-0)    PRDINPUT PRDINPUT 114002 OLD  T             ASTEP1   TAPEGDG1
                            PRDUPDT1 PRDUPDT1 114003 OLD  T             RES      TAP1GDG1
                            PRDRPT2D PRDRPT2D 114003 OLD  T             ST2      TAPE01
 PRDW.FILE.GDG.TBL11(-0)    PRDUPDT1 PRDUPDT1 114002 OLD  T             RES      TAP1GDG2
 SORTBY DSNAME  (REPBYDSN)

Figure 386 Sample Tape Pull List Report 3

Copy
 PRODUCED BY CONTROL-M PROD         TAPE    PULL   LIST
 BMC SOFTWARE, INC.                 ====================
                                                                         
 VOLSER TYPE  JOBNAME  ODATE  TIME  DISP LAB# DSNAME                    
 -------------------------------------------------------------------------
 S#0001 C     PRDINPUT 060601 22:02 NEW  0001 PRDW.TESTFILE.GDG.TBLM1(+1)
 S#0002 T     PRDINPUT 060601 22:02 NEW  0001 PRD.TP.TRANS              
 S#0003 T     PRDINPUT 060601 22:02 NEW  0001 PRDW.TESTFILE.GDG.TBLM8(+1)
 S#0004 T     PRDUPDT1 060601 22:09 NEW  0001 BKP.MONTH.CONT01(+1)      
 T00001 T     PRDRPT2D 060601 22:22 NEW  0001 PRD.SNG1912.TAPE1(+1)     
 T00002 T     PRDRPT2D 060601 22:22 NEW  0002 PRD.SNG1912.TAPE1(+2)     
 100000 T     PRDINPUT 060601 22:02 OLD  0001 PRDW.TESTFILE.GDG.TBLM8(+0)
 100047 T     PRDINPUT 060601 22:02 M-O  0001 BKP.WEEK.CONT01(-2)       
 100048 T     PRDINPUT 060601 22:02 M-O  0001 BKP.WEEK.CONT01(-2)       
 110048 T     SMFSAVE  060601 22:06 M-O  0001 BKP.MONTH.CONT02(-1)      
              PRDEXE2E 060601 22:25 OLD  0001 BKP.MONTH.CONT02(-2)      
 110049 T     SMFSAVE  060601 22:06 M-O  0001 BKP.MONTH.CONT02(-1)      
              PRDEXE2E 060601 22:25 OLD  0001 BKP.MONTH.CONT02(-2)      
 110050 T     SMFSAVE  060601 22:06 M-O  0001 BKP.MONTH.CONT02(+0)      
              PRDEXE2E 060601 22:25 OLD  0001 BKP.MONTH.CONT02(-1)      
              PRDRUN2F 060601 22:28 M-O  0001 BKP.MONTH.CONT02(-2)      
 110051 T     SMFSAVE  060601 22:06 M-O  0001 BKP.MONTH.CONT02(+0)      
              PRDEXE2E 060601 22:25 OLD  0001 BKP.MONTH.CONT02(-1)      
              PRDRUN2F 060601 22:28 M-O  0001 BKP.MONTH.CONT02(-2)      
 996713 T     PRDINPUT 060601 22:02 NEW  0001 PRD.TP.FILE1(+1)          
 997892 T     PRDRPT2D 060601 22:22 NEW  0003 PRD.SNG1912.TAPE2(+1)     
              PRDEXE2E 060601 22:25 OLD  0003 PRD.SNG1912.TAPE2(+0)     
                                                                        
 SORTBY VOLUME  (REPBYVOL)

Figure 387 Sample Tape Pull List Report 4

Copy
 PRODUCED BY CONTROL-M PROD         TAPE    PULL   LIST
 BMC SOFTWARE, INC.                 ====================       
 ODATE  TIME   VOLSER TYPE JOBNAME  DISP DSNAME                
 --------------------------------------------------------------------------
 060601 22:02  996713 T    PRDINPUT NEW  PRD.TP.FILE1(+1)      
               S#0001 C             NEW  PRDW.FILE.GDG.TBLM1(+1)
               100047 T             M-O  BKP.WEEK.CONT01(-2)   
               S#0002 T             NEW  PRD.TP.TRANS          
 060601 22:06  110050 T    SMFSAVE  M-O  BKP.MONTH.CONT02(+0)  
               110051 T                                        
               100048 T             M-O  BKP.MONTH.CONT02(-1)  
               110049 T                                        
               110058 T             M-O  BKP.MONTH.CONT02(-2)  
               110059 T                                        
 060601 22:09  114003 T    PRDUPDT1 OLD  PRDW.FILE.GDG.TBL11(+0)
               114002 T             OLD  PRDW.FILE.GDG.TBL11(-1)
               S#0004 T             NEW  BKP.MONTH.CONT01(+1)  
               114003 T             OLD  PRDW.FILW.GDG.TBL11(+0)
               S#0005 C             NEW  PRDO.TP.UPDT1         
 060601 22:19  S#0006 T    PRDRPT2C NEW  PRD.TP.DAILY.REPORTS  
               113492 T             OLD  PRD.CART.RPT2C        
               S#0007 T             NEW  BKP.MONTH.CONT02(+1)  
 060601 22:22  114003 T    PRDRPT2D OLD  PRDW.FILE.GDG.TBL11(+0)
               T00001 T             NEW  PRD.SNG1912.TAPE1(+1) 
               T00002 T             NEW  PRD.SNG1912.TAPE1(+2) 
               994529 T             NEW  PRDW.FILE.GDG.TBL21(+0)
               997892 T             NEW  PRD.SNG1912.TAPE2(+1) 
               S#0008 T             NEW  &&NEWTEMP             
               996638 T             NEW  BKP.MONTH.CONT01(+3)  
 060601 22:25  T00002 T    PRDEXE2E OLD  PRD.SNG1912.TAPE1(+0) 
               TOOOO1 T             OLD  PRD.SNG1912.TAPE1(-1) 
               S#0007 T             OLD  BKP.MONTH.CONT02(+0)  
               110050 T             OLD  BKP.MONTH.CONT02(-1)  
               110051 T                                        
               110048 T             OLD  BKP.MONTH.CONT02(-2)  
               110049 T                                        
               110058 T             OLD  BKP.MONTH.CONT02(-3)  
               110059 T                                        
               110056 T             OLD  BKP.MONTH.CONT02(-4)  
               110057 T                                        
                                               
 SORTBY TIME    (REPBYTIM)