Data Set Stacking
This chapter includes the following topics:
OverviewLink copied to clipboard
Two types of data set stacking can be performed by Control-M/Tape.
Table 11 Data Set Stacking Types
Type |
Description |
---|---|
Batch stacking |
Handles already existing data sets through the CTTSBD Control-M/Tape utility that is run in batch mode. |
Dynamic Data set stacking |
Handles newly created data sets during real-time operations. |
Through Data Set Stacking, Control-M/Tape can optimize usage of the storage space in your tape libraries.
Batch StackingLink copied to clipboard
The CTTSBD Control-M/Tape utility enables you to stack data sets already on tapes at your site. This utility can be used to free scratch tapes, override stacking limitations imposed by your real-time stacking definitions, and organize data sets that existed before your site’s tapes were managed by Control-M/Tape.
To immediately benefit from Control-M/Tape stacking capabilities, you can use the CTTSBD utility to stack existing data sets at your site before implementing Dynamic data set stacking (described below).
For more information about batch stacking, see the CTTSBD utility in the Control-M/Tape chapter of the INCONTROL for z/OS Utilities Guide.
Dynamic Data Set StackingLink copied to clipboard
When a scratch volume is requested for a new data set, Control-M/Tape can automatically direct the data set to an active volume that contains one or more files with attributes similar to the new data set.
Control-M/Tape analyzes characteristics (for example, retention criteria and vault patterns) of each new data set, and searches for a volume with data sets with matching criteria and enough free space. The new data set is then added to the volume. This process is called dynamic data set stacking.
This feature is controlled by the DYNSTK Control-M/Tape installation parameter and the DO STACK statement that must appear in a Control-M/Tape rule for the data set.
For a general description of the data set stacking logic, see the description of stacking in the organization and administration chapter of the Control-M/Tape User Guide. The following discussion assumes an understanding of the stacking algorithms and operation of Control-M/Tape.
General Considerations for Dynamic Data Set StackingLink copied to clipboard
Before activating the Dynamic Data Set Stacking facility, verify that the parameters relevant to the Dynamic Data Set Stacking facility are set during installation.
In general, Control-M/Tape Dynamic Data Set Stacking facility selects a volume for stacking only if the following conditions are met:
-
The DYNSTK parameter is set toY in the CTTPARM member and a DOSTACK=Y statement is specified in a matching rule.
-
The job names and data set names of the creating and created jobs have a matching entry in the Stacking Database. If you want to change this criteria (for example, consider all data sets with a specific prefix as the same data set for stacking purposes), you can use the CTTX002 Dynamic Data Set Stacking facility user exit to override the default operation of Control-M/Tape.
-
The average size megabytes of the specified data set is read from the appropriate entry in the Stacking Database. If this information cannot be found, stacking cannot continue. To avoid this problem, specify a default size for data sets through the STKDEFSZ parameter in the CTTPARM member.
The value of the STKDEFSZ installation parameter can optionally be overridden for a data set or group of data sets through a DO STKDEFSZ statement in a Control-M/Tape rule.
-
An appropriate volume is found in the Media Database. This volume must be eligible for stacking, have sufficient free space, and belong to the same pool as the data set to be stacked. Depending on the specification for the STKMODE Control-M/Tape parameter, the volume used for stacking may also need to have the same vaulting pattern as the data set to be stacked.
The search for a suitable volume can be controlled by Exit 10 (Find Stackable Volume) that controls the stacking algorithm. For more information about Exit 10, refer to the CTTX010 member in the IOA SAMPEXIT library.
The search can be limited to a specific number of volumes through the STKSRCHL parameter in the CTTPARM member or through a DO STKSRCHL statement in a Control-M/Tape rule.
-
The data set to be stacked is allocated in a DDstatement in the JCL of a job. Control-M/Tape stacks data sets that are allocated dynamically (using SVC99) only if the STKALCD parameter was set to Y in the CTTPARM member.
For a more complete list of conditions, considerations and parameters, see the description of stacking in the organization and administration chapter of the Control-M/Tape User Guide.
-
Non-scratch (Active) volumes converted to Control-M/Tape from another Tape Management System are considered not eligible for stacking. Stacking is only performed for volumes that were moved from scratch status to non-scratch status (meaning, the first data set was created on the scratch volume) while Control-M/Tape was operational.
Active volumes converted from the other tape management system can be stacked through the CTTSBD batch stacking utility (described above). For more information see the description of the CTTSBD utility in the Control-M/Tape chapter of the INCONTROL for z/OS Utilities Guide.
The remainder of this section describes how to implement the Dynamic Data Set Stacking facility at your site..
Before ImplementationLink copied to clipboard
As with any automated process to be implemented system-wide, the key to efficient and trouble free stacking is proper preparation. Procedures must be established and standards should be set.
Below is a description of the basic preparatory steps that should be performed before dynamic data set stacking is implemented at your site.
Review Working ProceduresLink copied to clipboard
Determine the standards for data organization at your site.
Properly enforced standards contribute to more efficient data set stacking.
Typical questions that should be answered are:
-
What kind of retention is used?
-
What standards are used to determine vault patterns?
-
What naming conventions are used? For example, which prefixes are assigned to data sets created by the various applications in use at your site.
-
Are pools used at your site? If so, which pools are assigned to the various applications and/or departments in use at your site?
Certain information in your Media Database may not be entirely accurate. For example, you may have sent tapes to another site without informing Control-M/Tape that these tapes are no longer present in the MAINLIB library.
Correct all known inconsistencies to ensure efficient data set stacking.
Identify Data Sets That Should Not be StackedLink copied to clipboard
Some data sets need to be insulated from other data sets in your system. These data sets must be identified and excluded from implementation of the Dynamic Data Set Stacking facility. Types of data sets that should not be stacked include:
-
Data sets created by software products that expect their data sets to be stored on separate volumes (for example, CA-View/Express files).
-
Data sets that need to be sent to other data centers or systems that are not recognized by local vaulting procedures (as described above).
-
Data accessed by other systems (MVS or non-MVS) that may be updated without Control-M/Tape being notified. For example, an updated data set may not be recorded in the MVS Catalog by the application or system that is creating the data set.
Select Test Environment for Stacking ImplementationLink copied to clipboard
It is recommended that you first implement the Dynamic Data Set Stacking facility for a limited number of data sets in a specific environment.
Testing a single job with a single data set is usually the first step in activating the Dynamic Data Set Stacking facility.
After this test, you can choose to implement stacking for additional data sets according to application, data set name, and so on.
Technical PreparationLink copied to clipboard
Review Installation ParametersLink copied to clipboard
Review the Control-M/Tape installation parameters relevant to the Dynamic Data Set Stacking facility and verify that appropriate values are specified. If you change any of these parameters except for DYNSTK and STKUNIT, reload it into the real-time environment using the following command:
S CTTINIT,PARM=‘RELOAD,TBLT=PARM’
If you change the value of the DYNSTK parameter or the STKUNIT parameter, the new values take effect only after Control-M/Tape is stopped and then restarted.
Table 12 Installation Parameters
Parameter |
Description |
---|---|
DYNSTK |
Determines whether the Control-M/Tape Dynamic Data Set Stacking Facility is activated. Specify Y (Yes) for this parameter. |
STKMODE |
Determines the search algorithm used by the Dynamic Data Set Stacking facility. The search is performed for each data set that is eligible for stacking to find the best matching volume. The selected search method influences both volume utilization and the resources required to search the Media Database for a matching volume. This parameter can be overridden for a specific data set or data sets through a DO STKMODE statement in a Control-M/Tape rule. Valid values are:
|
STKTEST |
|
Determines whether stacking takes place while Control-M/Tape is operating in Global Test mode. If you are testing the Dynamic Data Set Stacking facility while in Global Test mode, set this parameter to Y; otherwise, specify N. Setting STKTEST to Y affects your production environment’s decisions regarding where (meaning, to which volume) a data set should be written while Control-M/Tape is operating in Global Test mode. |
|
STKSRCHL |
|
Maximum number of volumes to be searched for a stackable volume. This parameter must contain a numeric value from 0 through 9999. Default: 0 (no limit) If the Dynamic Data Set Stacking facility searched the specified maximum number of volumes and did not find a suitable volume, the data set is written to a scratch volume. This parameter can be overridden for a specific data set or data sets through a DO STKSRCHL statement in a Control-M/Tape rule. |
|
STKDEFSZ |
|
When a data set about to be stacked cannot be located in the Stacking Database, Control-M/Tape references this parameter for a default size (in megabytes) for the data set. This parameter must contain a numeric value from 0 through 99999. Default: 10. When STKDEFSZ is set to 0, no default is used. If the data set entry is not found in the Stacking Database, stacking is not performed for that data set. You can override the STKDEFSZ installation parameter for a specific data set or data sets through a DO STKDEFSZ statement in a Control-M/Tape rule. |
|
STKUNIT |
|
Defines all unit names (as they appear in JCL) that are eligible for dynamic data set stacking. The format is: CopyCopied to clipboard
The STKUNIT installation parameter is ignored during handling of data sets managed by DFSMS. These data sets are considered stackable regardless of the unit name that is associated with them. |
|
STKKEEP |
|
Determines whether stacking takes place when DISP is set to (NEW,KEEP) for the data set. When STKKEEP is set to N, only data sets with DISP set to (NEW,CATLG) are stacked. |
|
CTTMEDDF |
Defines a Control-M/Tape logical media definition. This parameter is used to define a series of media attributes for each media type in use at the site. Relevant subparameters for the Dynamic Data Set Stacking facility are: |
STKPCNT |
Percentage of this media that can be filled up by dynamic stacking. This subparameter must contain a numeric value from 0 through 99. |
CAPACITY |
Media size (in megabytes). A value from 0 through 2047000000 can be specified. For more information, see the steps in Control-M/Tape installation in the INCONTROL for z/OS Installation Guide. |
STKVNSPC |
Determines whether Control-M/Tape selects volumes with non-specific retention for dynamic stacking. Valid values are:
If you stack data sets on volumes with non-specific retention, Control-M/Tape stacks the data sets on the volumes according to the retention of the last data set on the volume, as follows:
If the last data set on the volume has non-specific retention periods that do not have a statistical record, the volume is not used for stacking. |
STKALCD |
Whether the Control-M/Tape Dynamic Stacking facility is activated under Dynamic allocations (SVC 99). Valid values are:
|
CTTSTKLink copied to clipboard
Verify that the CTTSTK utility is not commented out in the New Day procedure (CTTDAY).
If the CTTSTK utility was commented out, BMC recommends that you run this utility on the Media Database (it is normally run on the Trace file) to collect the statistics needed for stacking implementation.
If the Dynamic Data Set Stacking facility is activated without running utility CTTSTK, stacking decisions are based on the default data set length specified in the STKDEFSZ parameter (described above).
For more information about the CTTSTK utility, see the Control-M/Tape chapter of the INCONTROL for z/OS Utilities Guide.
Research Your SystemLink copied to clipboard
-
Analyze the Media Database using utility CTTRPT. A wide variety of reports can be generated through this utility. Some examples of how this utility can be used to extract information for stacking implementation are listed below.
-
List under-utilized volumes (through the CTTRUTIL sample report). The volumes in this report are sorted by used capacity to help identify the best candidate volumes for stacking implementation.
-
Sort the inventory by data set name. Usually this results in sorting the data sets according to application (due to naming conventions).
Sample CTTRPT reports are located in the IOA SAMPLE library. For more information about the CTTRPT utility, see the Control-M/Tape chapter of the INCONTROL for z/OS Utilities Guide.
-
-
Identify candidate data sets for stacking implementation. Selection of data sets should depend on:
-
the type of application that generated the data sets
-
which data sets belong to an application that frequently encounters a shortage of scratched volumes
-
the size of relevant data sets
-
which data sets are assigned to each pool (if pools are in use at the site)
-
-
If you are working with STKMODE set toR orA, data sets for which retention is not a specific date or number of days (for example, retention type CATALOG, CYCLES, or LAST ACCESS) are stacked according to their average life span. The Dynamic Data Set Stacking facility calculates the expected expiration date of each such data set (from information in the Stacking Database) and stacks them according to the requested search algorithm.
If you prefer that data sets with non-specific retention be handled in a different way, generate a list of these data sets through the CTTRPT report utility, and define Control-M/Tape rules that include the DOSTKMODE=S statement for these data sets.
-
Identify potential conflicts (meaning, data sets that should not be stacked together). The CTTSCA Control-M/Tape utility can be used to automatically detect certain types of conflicts and to generate rules that prevent those conflicts from occurring. For more information, see the Control-M/Tape chapter of the INCONTROL for z/OS Utilities Guide.
-
Identify groups of data sets that should reside together. These data sets should be identified as stacking groups through DO STKGROUP statements in Control-M/Tape rules.
ImplementationLink copied to clipboard
If Control-M/Tape was brought up without activating the Dynamic Data Set Stacking facility, you have to stop Control-M/Tape and restart it in order activate this facility.
If Control-M/Tape was brought up with stacking activated, stacking can be stopped and started through commands STOPSTK and STARTSTK.
Determine which data sets, jobs, and tape pools should be stacked.
-
Verify that the appropriate rules have been defined, coded, and activated (ordered) for these data sets, jobs, or tape pools.
-
The DOSTACK=Y statement must be included in rules that refer to the data sets that are to be stacked. Rules modified to support stacking must be reloaded into the Control-M/Tape Real-time environment using the following command:
-
Use the CTTCRSS ISPF online utility to ensure that the stacking rules you are invoked for the appropriate jobs and data sets. (TSO%CTTCRSS, or from the IOA Online Utility menu, specify Option6, followed by OptionT1.)
-
Make sure that all stacking rules are in production mode (that is, MODE is set to PROD in the rule definition).
-
Use DOSTKRULE statements in the rules to prevent possible data set conflicts (see the CTTSCA utility in the Control-M/Tape Utilities chapter of the INCONTROL for z/OS Utilities Guide).
-
Use DOSTKGROUP statements in the rules to define logical groups of data sets. Each data set is stacked only with other data sets that have been assigned the same group name.
S CTTINIT,PARM=‘RELOAD,TBLT=RULE’
For more information about specific DO statements in Control-M/Tape rules, see the rule parameters chapter of the Control-M/Tape User Guide.
For more information about conditions necessary for stacking implementation, see the description of stacking in the organization and administration chapter of the Control-M/Tape User Guide.
Stacking RulesLink copied to clipboard
Dynamic data set stacking can be controlled by a variety of different DO statements in Control-M/Tape rules. These DO statements enable specification of stacking criteria that affect only the data set or data sets processed by a specific rule. The DO statements that can be specified are shown in Table 13.
Table 13 Dynamic Stacking DO Statements
Statement |
Description |
---|---|
DO STACK |
Indicates that the data set should be stacked. |
DO STKDEFSZ |
Default length for the data set if it is to be stacked. |
DO STKGROUP |
Stacking group for the data set. |
DO STKMODE |
Method to be used for stacking the data set. |
DO STKMXLBL |
The highest label number that can be assigned to the data set when it is stacked (meaning, the data set cannot be stacked on a volume or volume chain that already has the specified number of labels). |
DO STKMVOL |
The highest volume sequence number of a volume on which the data set is to be placed (meaning, the data set cannot be stacked on a volume chain that already has the specified number of volumes). |
DO STKRULE |
Stacking limitation for the data set. |
DO STKSRCHL |
Maximum number of volumes that can be considered for stacking the data set. |
For more information about these DO statements, see the rule parameters chapter of the Control-M/Tape User Guide.
Additional stacking and filtering rules can be implemented using Control-M/Tape Exit 10. A sample version of Exit 10 is supplied in the CTTX010B member of the IOA SAMPEXIT library. For more information about Control-M/Tape Exit 10, see the CTTX010 member in the IOA SAMPEXIT library.
TroubleshootingLink copied to clipboard
If the Dynamic Data Set Stacking facility is not working as expected, use the following steps to find and fix the problem:
Identify Problem Data Set and run Rule SimulationLink copied to clipboard
Identify the data set, job, and so on for which stacking is not working as expected.
Use ISPF online utility CTTCRSS (rule simulation) to determine which rules are triggered for the data set or job. Verify that each of the appropriate rules is in production mode (that is, MODE is set to PROD), and that the DO STACK=Y statement is included.
Check JCLLink copied to clipboard
Verify that the data set names, job names, and so on specified in the JCL are consistent with the names specified in the relevant Control-M/Tape rules. Ensure that DISP is set to (NEW,CATLG) for the data set. Alternatively, ensure DISP is set to (NEW,KEEP), and STKKEEP is set to r, in the CTTPARM member.
Check MVS Jobname MonitoringLink copied to clipboard
The Control-M/Tape subsystem receives control when message IEF403I ("jobname STARTED") is issued. Verify that MVS monitoring of job names is turned on (that is, that this message is not suppressed).
If necessary, command MONITOR JOBNAMES can be used to turn on MVS jobname monitoring. This command should also be included in the CONSOLxx member in the SYS1.PARMLIB library (or any equivalent) to ensure that the command is automatically issued at each IPL.
Check Stacking Statistics CollectionLink copied to clipboard
Verify that the job name in the JCL is the same as the job name for which statistics were collected by the CTTSTK utility. (This may not be the case if data sets with the same name were created by two different jobs.)
Make sure that the CTTSTK utility is included as a step in the New Day procedure (CTTDAY). This utility reviews the Control-M/Tape Trace file and collects the statistics needed for operation of the Dynamic Data Set Stacking facility.
This information can also be obtained by running the CTTSTK utility, using the Control-M/Tape Trace file as input.
The CTTSTKR utility can also be used to list the contents of the Stacking Database. For more information on the CTTSTKR utility, see the Control-M/Tape chapter of the INCONTROL for z/OS Utilities Guide.
Check Exit 2Link copied to clipboard
Control-M/Tape Exit 2 (CTTX002) can be used to modify the name of a job that creates a data set, the data set name and so on, so that certain data sets are considered as successive generations of the same data set in the Stacking Database. Sample Exit CTTX002R demonstrates how this exit can manipulate dsnames and jobnames to allow specification of stacking attributes according to dsnames and jobnames with shorter prefixes. For example, this exit can be used to group data sets with the same jobname and different suffixes (for example, to ignore timestamps in data set names).
Incorrect coding of Exit 2 may cause dynamic data set stacking problems.
For more information about this exit, see the CTTX002R and CTTX002 members in the IOA SAMPEXIT library.
Check Unit NameLink copied to clipboard
Verify that the unit specified in the JCL has been specified through the STKUNIT Control-M/Tape installation parameter in the CTTPARM member.
If Y is specified for Control-M/Tape installation SMSINTR, the STKUNIT parameter is ignored for data sets managed by DFSMS. For more information about Control-M/Tape handling of DFSMS-managed data sets, see Control-M/Tape DFSMS Interface.
Check for a //NOSTACK DD StatementLink copied to clipboard
Make sure that a //NOSTACK DD statement is not included in the JCL.
Determine why the Data set was not StackedLink copied to clipboard
If, after making the above checks, a data set was still not stacked as expected, review the reasons why the expected action was rejected.
Control-M/Tape checks each prospective stacking action in three stages:
-
JCL (DDstatements)
-
data set considerations
-
volume considerations
-
dynamic allocation (SVC 99) considerations
Each of these stages can result in rejection of the action. Each rejection is assigned a reason code. (The rejection reasons for each stage are described later in this chapter.
Normally only rejection reasons due to data set considerations are visible to the user. Each time a data set is rejected for stacking, the CTT356W message is issued. This message is followed by a message that describes why the data set was not stacked. (Data set rejection reasons are issued by the CTTSTH Control-M/Tape module.)
If a data set was not stacked but no CTT356W messages were issued, stacking may have been rejected for all volumes in the specified pool. To display rejection reasons for volumes, specify a CTTSTKRL DD statement (for example, CTTSTKRL DD DUMMY) in any step of the job that creates the data set to be stacked. This DD statement causes a rejection reason to be issued for each volume that is rejected during the search for a volume on which to stack the data set.
If no data set or volume rejection reason is found to explain a failed stacking attempt, stacking may have been rejected due to a job statement or dynamic allocation consideration. Review the job statement rejection reasons below or the dynamic allocation rejections to understand the cause of the problem.
Job statement rejection reasons and dynamic allocation rejection reasons are only visible to the user if the trace level is set to 324 by Control-M/Tape’s started task CTTINIT. BMC recommends using CTTINIT with the following syntax to obtain the reason for the rejection:
S CTTINIT,PARM='TL=324,TJ=job-name'
To stop trace level messages, use:
S CTTINIT,PARM='TL=0'
Job Statement Considerations
Certain specifications in the DD statements of a job may make it impossible to stack data sets accessed or created by the job. The table shown below lists each rejection reason code and a description of the problem it indicates.
Table 14 Job Statement Rejection Reason Code
Reason Code |
Description |
---|---|
1 |
The VOL=REF=DSNAME statement was included in the JCL. Control-M/Tape ignores references to data set names that appear earlier in the JCL. |
2 |
A reference to a step name or procedure step name was specified in the JCL (for example, VOL=REF=*). Control-M/Tape ignores references to data set names that appeared earlier in the JCL. |
3 |
The current DD statement is a NOSTACK DD statement. Control-M/Tape interprets this DD statement as an instruction not to stack data sets created by this job. |
4 |
A NOSTACK DD statement that is not the current DD statement was specified in the relevant step in the JCL. |
6 |
A specific volser was specified as a destination for the current data set. Control-M/Tape honors the user’s request for the specific tape and does not stack this data set. |
7 |
The VOL parameter in the current DD statement indicates that the data set can be written to more than one volume. Example VOL=(,,,2) where 2 is the maximum number of volumes Multi-volume data sets are not stacked. You can bypass this reject reason by setting the STKVCBP parameter in the CTDPARM member to Y. For more information, see the INCONTROL for z/OS Installation Guide. |
9 |
|
The DISP=NEW statement was not included in the JCL. There is no need for Control-M/Tape to stack the data set because no new data set was created. |
|
A |
The DISP=(NEW,CATLG) statement was not included in the JCL, and Y was not specified for the STKKEEP Control-M/Tape installation parameter. |
B |
A non-standard label (for example, BLP or NL) was specified for the current data set. Control-M/Tape stacks only data sets for which a standard label is specified. |
C |
The specified file sequence number is greater than 1. Either a file sequence number of 1, or no file sequence number, should be specified for data sets to be stacked. |
D |
EXPDT = 98000 is specified for the current data set (that is, the volume is an external volume). Control-M/Tape does not stack these data sets. |
Data Set Rejection ReasonsLink copied to clipboard
As mentioned above, data set rejection reasons are listed in the job log following CTT356W messages.
Table 15 Data Set Rejection Reason Code
Reason Code |
Description |
---|---|
10 |
Control-M/Tape is running in Global Test mode. |
11 |
Exit 2 disallowed stacking for the data set. |
12 |
No rule was found for the data set. |
13 |
A rule was found for the data set but the DO STACK=YES statement was not included in the rule. |
14 |
The data set is managed by an external data manager (EDM). |
15 |
Control-M/Tape rules for the data set were run in Test mode. |
16 |
The rule associated with the data set being created specifies a vault pattern for the data set, but neither V nor A was specified for the STKMODE parameter. |
17 |
No statistics were found for the data set and no default statistics were specified in the STKDEFSZ parameter. |
18 |
The data set is not stackable (for example, because //NOSTACK was specified in the JCL). |
19 |
The DO POOL statement in the relevant rule specifies a pool that was not defined to Control-M/Tape. |
20 |
Internal error. Contact your local INCONTROL representative for more information. |
21 |
An eligible volume with sufficient space for the data set could not be found in the specified pool. |
22 |
No media was specified in the CTTMEDDF Control-M/Tape installation. |
23 |
Stacking for the data set was stopped due to a request from Control-M/Tape Exit 10. |
24 |
Either the unit specified in the JCL was not specified in the STKUNIT Control-M/Tape installation parameter, or the data set is managed by DFSMS but was not assigned storage group of type TAPE. |
Volume Rejection ReasonsLink copied to clipboard
The following rejection reasons indicate that a specific volume was rejected during the search for a volume on which to stack the current data set. These rejection reasons do not necessarily mean that the data set was not stacked. Many volumes may be considered and rejected during the search for a volume on which to stack a data set.
Table 16 Volume Rejection Reason Code
Reason Code |
Description |
---|---|
30 |
The volume is not active. Data sets can only be stacked on active volumes. |
31 |
The volume is one of the following:
|
32 |
The volume is not stackable (for example, it contains a data set created with the DISP=MOD expression), or the volume is in use. |
33 |
A data set with retention type PERMANENT is on the volume, and the current data set has a different retention type. |
34 |
A data set with retention type DATE is on the volume, and the current data set has a different retention type. |
35 |
The expiration date of the current data set is later than the expiration date of the last data set on the volume. |
36 |
The retention type of the current data set is PERMANENT or DATE, and the data sets on the volume have other retention types. |
37 |
The volume has a status of Pend-Vault and neither V nor A was specified for the STKMODE installation parameter. |
38 |
The volume has a status of Pend-Vault and the relevant rule does not specify a vault pattern (meaning, no DO VAULT statements were specified). |
39 |
The volume’s media type was not specified in the CTTMEDDF installation parameter. |
40 |
There is not enough space on the volume for the data set to be stacked. |
41 |
The volume is about to be returned from a vault. |
42 |
The vault pattern of the current data set has a different number of vaults than the vault pattern of the candidate volume. |
43 |
The vault pattern of the current data set indicates different vaults than those specified in the vault pattern of the candidate volume. |
44 |
The vault pattern of the current data set indicates different vault retention types than those specified in the vault pattern of the candidate volume. |
45 |
The vault pattern of the current data set indicates different vault retention dates than those specified in the vault pattern of the candidate volume. |
46 |
More than one possible retention type was specified for the current data set and/or the data sets on the volume. The AND/OR relationships between these retention types in the vaulting pattern of the data set are different from those specified in the vaulting pattern of data sets already on the volume. |
47 |
The volume is being accessed by another user. |
48 |
Control-M/Tape utility CTTGVL was used to hold a scratch volume for the data set. This rejection reason is returned when the volume held by utility CTTGVL was not scratch. |
49 |
Control-M/Tape searched the maximum allowed number of volumes for a volume on which to stack the data set, and did not find a suitable volume. |
50 |
The volume was rejected by Control-M/Tape Exit 10. |
51 |
The stacking group of the data set does not match the stacking group of the volume. |
52 |
The volume was rejected due to a DO STKRULE statement (in a Control-M/Tape rule) that does not allow the current data set to be stacked with the data sets on this volume or does not allow stacking with data sets created by the job that created one or more of the data sets of this volume. |
53 |
The volume already contains the maximum allowed label number value (the STKMXLBL parameter). |
54 |
The volume is not an SL (Standard Label) volume. |
55 |
The volume that was selected by Exit 10 is from the wrong pool. |
56 |
Current data set has a vault pattern, but the volume does not have a status of POTENTIAL VAULT. |
57 |
Volume is already referenced by the current job. |
58 |
Sequence number of current volume exceeds the limit set by the STKMXVOL parameter. |
59 |
Volume and data set have conflicting vaulting methods, (meaning, one is to be vaulted by box while the other is to be vaulted by slot). |
Dynamic Allocation ConsiderationsLink copied to clipboard
Certain specifications in the dynamic allocation (SVC 99) parameters may make it impossible to stack data sets. The table shown below lists each rejection reason code and a description of the problem it indicates.
Table 17 Dynamic Allocation Consideration Code
Reason Code |
Description |
---|---|
90 |
Control-M/Tape real-time environment is currently not operate in Stacking mode. |
91 |
A VOLSER was specified. |
92 |
VOL=REF=DSNAME was specified. |
93 |
A data set label other than 1 was specified. |
94 |
EXPDT=98000 was specified. |
95 |
A non-standard label (SL) was specified. |
96 |
DISP=NEW was not specified. |
97 |
Data set normal disposition, DISP=(,x), was not CATLG or KEEP. KEEP can be used only when the STKKEEP parameter is set to Y in the CTTPARM member. |
98 |
The volume count was set to a value other than 1. |
99 |
A NOSTACK DD statement was set in the step. |
9A |
The allocation performed by the Batch Stacking utility (CTTSBD). |
Real-Time Data Set Stacking Under JES3Link copied to clipboard
JES3 normally issues all tape mount requests in immediate mode at the beginning of a job. However, it is possible to implement Real-time data set stacking under JES3.
In order to implement Real-time data set stacking mount requests under JES3, the mount requests must be intercepted and modified. Use JES3 sample Exit IATUX06 to perform the necessary modifications.
When a job starts, Exit IATUX06 analyzes all tape requests in the job. The exit changes mount requests to DEFERRED mode and issues a message if:
-
The data set that is to be created is a candidate for stacking.
-
The mount request is in immediate mode (meaning, DEFER is not specified).
When the data set is created, Control-M/Tape searches for an appropriate volume and issues a mount message.
A data set is a candidate for stacking if all of the following are true:
-
The request is for a scratch tape.
-
Control-M/Tape is active and real-time data set stacking is enabled (meaning, the DYNSTK installation parameter is set to Y).
-
A corresponding Control-M/Tape rule has been defined and is active. This rule must include a DOSTACK=Y statement.
Under JES3, the DO STACK=Y statement can only be specified with selection criteria ON DATASET, ON JOBNAME and/or ON USERID.
ImplementationLink copied to clipboard
Use the following steps to implement real-time data set stacking under JES3:
-
Edit the ASMIAT06 member in the CTT JCL library and submit the job. When the job is submitted, the ASMIAT06 member compiles and links JES3 Exit IATUX06. Exit IATUX06 is called by JES3 when each DDstatement is processed.
-
Copy the new IATUX06 module to the JES3 exits library (SYS1.JES3LIB).
-
To activate the new exit, stop and restart JES3 using Hot Start (an IPL is not required).