Overview - syncsort_scc_monitor - Latest

Syncsort™ Storage Management SCC DLimit Guide

Product type
Software
Portfolio
Integrate
Product family
Syncsort™ software
Product
Syncsort™ Storage Management > Syncsort™ SCC Monitor
Version
Latest
ft:locale
en-US
Product name
Syncsort Storage Management
ft:title
Syncsort™ Storage Management SCC DLimit Guide
Copyright
2021
First publish date
1991
ft:lastEdition
2025-12-05
ft:lastPublication
2025-12-05T05:06:29.654000
L1_Product_Gateway
Integrate
L2_Product_Segment
IBM Infrastructure
L3_Product_Brand
Precisely Syncsort
L4_Investment_Segment
Mainframe
L5_Product_Group
Mainframe Storage Optimization
L6_Product_Name
Syncsort Storage Management

Application-Based Space Standards

DLimit provides storage administrators and users with an up-to-the-minute view of the storage space used by a user, application, group, or department.

Tracking and monitoring space use and preventing unlimited growth in application space is particularly important in a system-managed environment, where traditional DASD volume boundaries no longer exist.

DLimit allows installations to interactively set, change, and view accounts and limits for disk space use by applications, eliminating the need for tedious analysis of out-of-date DASD reports.

DLimit uses the same flexible rules language as the other members of the Storage Control Center (Storage Control Center) to assign datasets to accounts based on name, SMS class, owner id, or other criteria. Datasets may be assigned to multiple accounts, allowing usage to be tracked at the user, application, division, or departmental level.

DLimit keeps track of the current space used within an account, the highest amount used, the maximum allowable amount, and other important information in real time. The SCC-DLimit rules language allows warnings to be issued for accounts which exceed their limit, or, if desired, new allocations for over-limit accounts can be denied by DLimit.

Controlling the use of direct-access space

Direct-access space – a critical resource Modern business data processing depends upon the availability of disk space. In most businesses, the vast majority of mission-critical data is kept on DASD. There are many advantages to storing data on disk, including:
  • instant accessibility to any piece of information
  • high performance
  • high reliability
  • ease of backup
Disk storage plays a critical role in every data processing installation. In many data centers, a much larger share of the hardware cost is devoted to DASD than to any other single item.

Controlling space utilization The advantages of using DASD as a medium for storing information are so overwhelming that almost all important corporate information is today kept on disk. Existing applications, online systems, data warehouses, decision support systems, and new applications all compete for DASD space. Corporate mergers and data center consolidations add their requirements to the insatiable demand for space. With almost every data processing function dependent upon the availability of disk storage, it is not uncommon for DASD growth rates to exceed 50% annually. Since no company has an unlimited budget, containing the runaway growth of DASD is an important priority.

Traditional methods Data centers have relied on several methods to limit the growth of DASD space. Manual methods include assigning particular volumes or storage groups to different work groups, such as devoting volumes ‘PAY01’ through ‘PAY22’ to the payroll application and volumes ‘HR001’ through ‘HR005’ to the human resources application. In data centers which have implemented an allocation control product such as Allocation Control Center (ACC), the task of ensuring that only datasets belonging to a particular application reside on specified volumes can be automated. Much additional effort is often devoted to ensuring that only the most recently used data remains on “primary” DASD. Sophisticated backup and recovery systems such as IBM’s DFSMShsm and Innovation Data Processing’s FDRABR are used to migrate older data to compressed files on DASD or to tape, reducing the amount of disk space required to hold ‘active’ data. Proper use of such archival utilities requires strict attention to the migration criteria, recall rate, and tracking of backups.

System-managed storage considerations

Devoting entire disk volumes to particular applications is wasteful. If an application group requires only a few cylinders of DASD space, the rest of the volume may remain unused. More importantly, storage use across the system may be unbalanced, with some volumes almost empty while others are nearly full. This can result in failed allocations, out-of-space abends, and ultimately, the need to purchase more DASD than would otherwise be required. Furthermore, dependence on particular volume serial numbers makes it very difficult to create and maintain application JCL and imposes a heavy maintenance burden on the storage administrator who attempts to add or remove disk volumes on the system.

For these reasons, most installations have moved to a system-managed storage environment, in which datasets are allocated to volume pools based upon the service requirements of the dataset. For datasets managed by DFSMS, the Automatic Class Selection (ACS) routines derive a data class, storage class, and management class for each dataset and assign the dataset to an SMS storage group. For non-SMS datasets, a similar volume pooling function is performed by products such as the Allocation Control Center (ACC). With system management of DASD storage, datasets are no longer restricted to the particular volumes specified in the JCL, but may be placed anywhere in the storage group or volume pools according to the policies implemented by the storage administrator.

Runaway space use

System-managed storage removes the burden of volume-specific allocation and allows datasets to be placed on the volume where they are best suited. With system-managed storage (whether the dataset is managed by SMS or whether it is simply a “pooled” non-SMS dataset), space utilization across the system is more even, and allocation failures and out-of-space conditions are less frequent. However, this benefit comes with a cost.

With system-managed storage, users are no longer restricted to allocating only to their “own” volumes. An application’s datasets may be spread out among any of the volumes in a pool, or among several pools. There is no mechanism within the operating system to limit the amount of space available to an application. In a non-system-managed environment, allocation of datasets is limited to those volumes that belong to the application. In a system-managed environment, this limitation is lifted. The possibility then exists for ill-behaved applications to occupy vast amounts of space. Without any basis for preventing excessive space use, or even of tracking the amount of space used by an application, data centers are open to the possibility of runaway DASD growth.

Newer “instantaneous-copy” hardware technologies increase the potential for out-of-control allocation of space still further, as it becomes very easy for application users or storage administrators to make many duplicate copies of large datasets.

Using DLimit to measure and control utilization

DLimit addresses the problems of unlimited DASD use and lack of accountability that plague even the most aggressively tuned system-managed storage environments. With DLimit, the storage administrator can establish a space “account” for each application, and can ensure that applications stay within their assigned space limits.

To use DLimit, the storage administrator establishes a set of rules that specify the characteristics of datasets that are to be assigned to the various accounts. As datasets are created, extended, renamed, deleted, and released, DLimit examines the rules and updates the appropriate accounts, so that a constant running total of the amount of disk space used by each application is available.

Track space utilization

DLimit tracks the current amount of space occupied by each application as well as the largest amount ever used by the application (the high-water mark). Each application is assigned an “account” in the DLimit database, and the space amounts recorded in the account are updated as requests for space are made.

Requests for space can be assigned to one or more accounts that describe the type of space requested. The currently used space and high-water mark are recorded for each account. Other information, such as the date and time of the most recent update, are also recorded in the account record. Since DLimit receives control in real time at the moment a request for space is made, the values in the account record are always up-to-date.

Establish space limits

Accounts may be explicitly established by the storage administrator (via the DLADD command) or automatically by DLimit rules when a non-existent account name is assigned to a request for space. In either case, a maximum value for the amount of space allowed can be set for the account. Space amounts for each account may be recorded in:

  • tracks
  • kilobytes (KB)
  • megabytes (MB)
  • gigabytes (GB)

Warn or deny allocation

If the amount of space which an application is allowed to use is exceeded, DLimit can perform a number of actions. The allocation may be denied (if MODE(ACTIVE) is specified for the account), or a warning message may be issued (if MODE(WARN) is specified). Warning messages are written to the JES log for a batch job, or to the TSO session for a TSO user. If desired, additional warning messages may be written to a log file, to SMF, or to a storage administrator’s TSO userid. Users can also be warned if the amount of space used by an application is approaching the maximum limit for one of the space accounts but has not yet exceeded it.

How DLimit interfaces with DADSM

DLimit uses the operating system IGGPRE00 and IGGPOST0 exits to obtain control whenever a request is made within the system for direct-access space. During IGGPRE00 time, the DLimit rules are executed. If the request for space is assigned to an account, DLimit checks to see whether the maximum space for the category is exceeded. If so, DLimit may prevent the allocation, warn the user, or take no action, depending on the setting of the MODE value for the account. Once the dataset has been allocated, DLimit updates the account with the new space values during IGGPOST0 processing. If dataset allocation fails, either because DLimit denied the request or for some other reason, the account is not updated and DLimit does not change the current space amount in the account.

DLimit gets control for each type of request for space the system may make. These request types include:

  • create
  • delete
  • extend
  • release
  • rename

During dataset creation or extend processing, space will be added to the specified accounts. During delete or release processing, space amounts will be subtracted from the accounts specified by the rules. For this reason, it is important that the rules use durable variables whenever possible, and that the rules assign the same account name to a dataset during both creation and deletion processing. A durable variable is one that does not change depending upon how the dataset is referenced. For example, high-level qualifier and RACF owner id are durable, but DD name is not.

Note: Use durable variables (for example, &QUAL1 or &RACF_OWNER) when assigning accounts so that account names remain consistent between create and delete operations.

During rename processing, space is subtracted from the account for the old name and added to the account for the new name. The particular type of space request being processed is available within the DLimit rules by examining the &ENVIRONMENT variable.

Many installations may already have IGGPRE00 and IGGPOST0 exits in use. DLimit can coexist with existing exits and will call these exits before doing any of its own processing.

The following figure shows how DLimit uses the DADSM exits to assign datasets to accounts, determine if the space limit for the account has been exceeded, and take appropriate action.

Figure 2-1. DLimit Space Request Processing

The DLimit database

A repository for space information DLimit keeps up-to-the-minute information about the amount of space assigned to each account in the DLimit database. The DLimit database is a BDAM file, specified to act as the DLimit information repository.

Only one BDAM file needs to be used system wide as the active DLimit database. All requests that the system makes for disk space are intercepted by DLimit, and if the DLimit rules assign the request for space to a DLimit account, then the entry representing the account in the currently active database is updated. Additional databases may be defined.

Other DLimit databases

The DLMAINT utility program provided with DLimit can extract the contents of the BDAM file used as a database and place it in a key-sequenced VSAM file. This VSAM file can then be used by the DLMAINT program instead of the active database, if desired. DLMAINT allows the storage administrator to examine, change, and report on the contents of DLimit databases. The database used by DLMAINT can be the active DLimit database, or a VSAM file specified by the SET DATABASE statement.

The $CONTROL record and model accounts

The $CONTROL record

The $CONTROL record specifies defaults that apply to DLimit processing. These defaults apply unless they are overridden by specifications within the DLimit rules or on the DLimit commands. The DLSYS command is used to display and change the contents of the $CONTROL record.

Model accounts

Accounts within the DLimit database may be designated as a model for use when creating new accounts. New accounts may be created either dynamically or explicitly via the DLADD command.

Once an account is designated as a MODEL, it is used as a model for the creation of new accounts. The MODEL operand of the DLADD command is used to specify the name of the model account to be used, or model accounts can be set in the DLimit rules.

Most installations will have procedures already in place for the backup of system datasets. If a copy of the DLimit database is required, it can be obtained with the BACKUP and RESTORE statements of the DLMAINT utility program, or via the EXPORT and IMPORT commands of IDCAMS.

DLimit accounts

What is an account? DLimit tracks space by assigning requests for space to accounts. An account represents the space assigned to all datasets that meet some particular criteria, as specified in the DLimit selection rules. Within the DLimit selection rules, the SET statement is used to assign a request for space to an account, for example: SET &DACCT = PAYROLL

In this example, the current request for space (which may be due to allocation of a new dataset, or extension of an existing one) is assigned to the “PAYROLL” account. Account names may be up to 30 characters in length and may be any combination of valid alphanumeric characters. Embedded blanks are not allowed in account names.

A request for space may be assigned to up to 10 different accounts, using the variables &DACCT1 through &DACCT10. Specifying &DACCT is the same as specifying &DACCT1. Assigning a dataset to multiple accounts allows space to be tracked at several different levels, such as individual, group, or department levels. For example, a request for space might be assigned to the RESEARCH account, the NYAREA account, and the NATIONALSALES account. Different space limits can be set for each account, and the storage administrator can see at a glance, through the DLimit ISPF panels, how much space each group is using. Multiple accounts may also be assigned for the purpose of further classifying requests for space. For example, to identify whether the type of space requested was for:
  • VSAM
  • temporary
  • permanent physical sequential
  • SMS
Note that a request for space should be assigned to an account when space is released as well as when it is allocated. That is, if dataset MAY.NEW.ACCOUNTS.RECV is assigned to the RECEIVABLES account when it is created, then it should be assigned to the same account when it is deleted, so that the proper amount of space can be removed from the proper account. Normally, this happens automatically if durable variables such as dataset qualifiers are used for the account name, unless the DLimit selection rules perform different processing based on the contents of the &ENVIRONMENT variable. (The &ENVIRONMENT variable indicates what type of space processing function — allocate, extend, scratch, release, rename — is being requested.)

Establishing characteristics for an account

The DLADD command is used to explicitly create an account. Account names may be from 1 to 30 alphanumeric characters. Once established via the DLADD command, the DLALTER command may be used to change the characteristics for the account. The syntax and operands of the DLADD and DLALTER commands, as well as various other TSO commands for DLimit, are described in Chapter 6, "TSO Command Interface". These TSO commands can also be specified in the SYSIN input to the DLMAINT Utility, which is described in Chapter 7. DLMAINT can be used to back up or recover the DLimit database, to make changes to individual accounts, or to make mass changes to many accounts by processing each account in the database against a set of rules.

Accounts may also be created dynamically whenever a SET &DACCT= statement is encountered in the DLimit rules. In order for accounts to be created dynamically, the $CONTROL record in the DLimit database must indicate that dynamic account creation is allowed. The DLSYS command can be used to change the contents of the $CONTROL record. The syntax of the DLSYS command can be found in Chapter 6, "TSO Command Interface".

The following characteristics may be set or changed in an account, using the DLADD or DLALTER commands:

Account mode Indicates what actions DLimit is to take when processing requests for space.
  • ACTIVE — If space is requested for an account in ACTIVE mode, DLimit checks to see if the additional space will cause the account to be over the MAX limit. If so, the allocation is failed.
  • WARN — Allocation is allowed to proceed, but a warning message is issued indicating that the amount of space allowed for the account has been exceeded.
  • TRACK — The amount of space requested is added to the proper account, but no check is made to see if the account is over limit.
  • INACTIVE — Accounts are dormant; space amounts are not accumulated for the account.

Warning Percentage: Specifies the percentage of the total amount of space that the account is allowed to use before warning messages are issued (if the account is in WARN or ACTIVE mode).

Space Tracking Units: Specifies the type of units (TRACKS, KB, MB, or GB) in which space is to be accounted. If the space unit is TRACKS, the maximum track size of the device is used. If the space unit is KB, MB, or GB, then the number of tracks requested is converted to the desired unit.

Current Space Amount: The amount of space currently occupied by datasets assigned to the specified account. The date and time of the most recent request for space in the account are also recorded by DLimit.

Maximum Space Amount: The maximum amount of space which may be occupied by datasets assigned to the account. If a request for space is received which will cause the current space amount in the account to exceed this value, warning messages may be issued or the request for space may be rejected by DLimit, depending upon the account mode setting.

Maximum Space Amount: The maximum amount of space which may be occupied by datasets assigned to the account. If a request for space is received which will cause the current space amount in the account to exceed this value, warning messages may be issued or the request for space may be rejected by DLimit, depending upon the account mode setting.

High-water-mark

High-Water-Mark: The largest amount of space which has ever been requested for the account. The date and time of the occurrence of the high-water mark are also recorded by DLimit.

An example of the use of the DLADD and DLALTER commands is shown below. The DLADD command creates a new account, EAST23, using the characteristics defined in the model account named MODLEAST. The DLALTER command shown changes the characteristics of the EAST23 account (sets warning percentage to 80% and MAX to 5000MB):
DLADD EAST23 MODEL(MODLEAST)
DLALTER EAST23 WARN(80) MAX(5000M)   

How SCC-DLimit calculates space amounts

SCC-DLimit receives control in two system exits, IGGPRE00 and IGGPOST0, which are entered during the allocation of a new dataset or when an existing dataset is extended, renamed, deleted, or has space released. SCC-DLimit determines the size of the space request from the parameter list passed to these exits.

The size of the space request is sometimes presented in units of tracks, which SCC-DLimit then converts to kilobytes, megabytes, or gigabytes, depending upon characteristics of the DLimit account to which the space is assigned. The track size used by SCC-DLimit in its calculations is the maximum track capacity according to the LSPACE SVC:

  • 3380-type devices: 47,968 bytes
  • 3390-type devices: 58,786 bytes
  • Unknown device type: 57,664 bytes (maximum blocksize of a 3390-type device)

Because tracks are not always filled to capacity, and not all allocated space is always used by applications, the space amounts calculated by SCC-DLimit may be slightly different than the values obtained by other methods.

Using the rules language to assign accounts

The primary function of the DLimit rules is to assign requests for space to an account. The DLimit rules are executed whenever the system makes a request for space on a volume. When coding the DLimit rules, it is advisable to use durable variables when determining what account to assign. That is, the rules should test and use variables which will not change between executions. It is better to use &QUAL1 than &STEPNAME or &DDNAME, for example, since the high-level qualifier of a dataset is unlikely to change, whereas the stepname or DD name assigned to a dataset may differ from one job to the next.

The following example assigns a request for space to one of several different accounts, depending upon the value of the high-level qualifiers of the dataset name and the type (permanent or temporary) of the space required:


DEFRULE SETACCT
  CONTINUE(NEXTIF)
  IF &QUAL1 EQ (PROD,TEST)
    THEN SET &DACCT1 = &QUAL1
         SET &MODEL = MODEL
         DO
           IF &TEMP = YES
             THEN SET &DACCT2 = "&DACCT1:TEMP"
         END
  IF &QUAL1 EQ P* &QUAL3 EQ WORK
    THEN SET &DACCT1 = 'PERMWORK'
         SET &DACCT2 = 'GROUP14'
      

If the account name does not already exist, default account values will be obtained from the MODEL account.

The name of the account(s) assigned to a dataset may be a fixed character string (for example, PAYROLL) or may be a symbolic variable such as &QUAL1 or &RACF_OWNER. A request for space may be assigned to up to 10 accounts (&DACCT1 through &DACCT10).

Automatically creating new accounts

DLimit assigns space to accounts when a SET &DACCT= statement is encountered in the rules while processing a request for space. If the account specified does not exist in the DLimit database, and dynamic creation of accounts is allowed, then the account will be automatically created. The AUTOCREATE(YES/NO) operand of the DLSYS command can be used to enable or disable automatic account creation.

An existing account in the DLimit database can be used as a MODEL account to be used as a basis for creating new accounts. When creating new accounts using a MODEL account, all of the values associated with the model account are copied into the new account.

When creating new accounts, the symbolic variables prefixed with ACCT_ can be used to override the defaults set by the MODEL account. However, for an existing account, these variables are ignored and the settings currently assigned to the account are used.

Do not create an excessive number of accounts

If you use low-level qualifier or some other characteristic of the dataset name to assign the account name, you should be careful not to create an excessive number of accounts. For example, if the rules specify

SET&DACCT = &DSNAME

then an account will be created for every dataset. This defeats the purpose of DLimit, which is to track the space assigned to applications or other logical groups of datasets. Similarly, account names shouldn't be created based on temporary dataset names, to avoid creating accounts such as SYS97321 or SYS98224, etc.

Each request for space that's examined by DLimit is assigned to an account by the DLimit rules when a SET &DACCT=statement is encountered.

SCC-DLimit reporting

Information can be obtained directly from the SCC-DLimit database via the ISPF interface, or via the DLMAINT batch utility. SCC-DLimit can also use the flexible reporting facilities of the Storage Control Center Monitor via program MONRUN for customized reporting on information contained in the SCC-DLimit database. The SCC-DLimit Sample Library contains several examples of reports that can be used to show the status of SCC-DLimit accounts, including those which exceed specified warning levels.