MVS disk data sets are allocated and managed either through job control language (JCL) statements contained in an MVS batch job stream or from TSO using the dataset utilities menu. In addition, UTCC has established local conventions regarding disk usage which are described in this chapter.
Unit Bytes/Track Tracks/Cyl. Cyls./Vol. Megabytes/Vol.
3380A 47,476 15 885 630 3380E 47,476 15 1,770 1,260 3380K 47,476 15 2,655 1,890 3390 56,664 15 2,226 1,892
Group Name Storage UnitWithin the ONLINE group, specific disk units, called volumes, are assigned a volume serial identification.
UNIT=ONLINE IBM 3380 UNIT=SYSDA IBM 3390 UNIT=VMSHR IBM 3380 UNIT=VIO See section 11.1.3
UNIT= VOL=SER=Data on a disk volume are organized into data sets, each of which has a data set name (DSN). A volume table of contents (VTOC) records information about each data set including its name, organization, and location on the volume, and the amount of available space on the volume. When the data set name and volume are specified, the operating system is able to retrieve complete information about a data set. To avoid the necessity of keeping track of the volume and units on which data sets are stored, users are urged to catalog their data sets at creation. Then, for subsequent access, only the data set name (DSN=) and status or disposition (DISP=) parameters are required.
ONLINE ONLINx where "x" is 1, 2, 3, 4, 5, 6 or 7
//SHARE DD UNIT=VMSHR,DISP=(,CATLG), // SPACE=(800,(500,100),RLSE),DSN=J999991.SHARED
It should be noted that VMSHR disk data sets can be read by any CMS user, even if RACF protection does not allow MVS users to read them. See section 4.24.3 for more information about VMSHR; see section 11.6 for more information about RACF protection on MVS. Space on ONLINx may be allocated by allowing the system to choose an online pack depending on the space available. This is the recommended method of allocation. To invoke this facility, UNIT=ONLINE should be specified, and the VOL parameter should be omitted. For example:
//ONLIN DD UNIT=ONLINE,DISP=(,CATLG), // SPACE=(TRK,(20,10),RLSE),DSN=J999991.MYDISK
The system will automatically select an appropriate ONLINx disk pack. After execution, the online pack that was used can be identified by examining the JCL listings of the job, provided the second positional parameter of the MSGLEVEL field is specified as "1" (see section 7.2.1), or the data set can be cataloged, identifying the disk pack for future use. The use of the system catalog is recommended in most cases. The parameters required on DD statements for allocating disk data sets are given in MVS/ESA JCL Reference , GC28-1829.
Temporary data set names Data set names for temporary data sets are optional; however, if a name is specified for a temporary data set, it must be of the form &&cccccccc, where "cccccccc" represents a one- to eight-character name. If no data set name is specified, the operating system will assign one.
Non-temporary data set names Data set names of the following form are required for all non-temporary data sets at UTCC:
where "projcode" is a valid project code, without leading zeros, and "rem" is the remainder of the data set name specified by the user. The "rem" portion of the name cannot be null, and the whole name, including the high level index "Jprojcode" and all periods may not exceed 44 characters. For each group of eight characters or less there must be a period, and the first character of the name and the character following a period must be an alphabetic or national ($#@) character. Permanent disk data sets on all volumes and catalog entries will be deleted if the high level indices for their data set names do not conform to the naming convention or if the project code in the high level index is invalid.
The balance of the data set name may contain any valid character string. Examples of permissible data set names are
DSN=J999991.SOURCE.ZLEV.PT3.MOD5 DSN=J999991.MOD15 DSN=J999991.PT8Users may rename and recatalog disk data sets with the IDCAMS or IEHPROGM utility program (see section 14.2.1 or 14.2.6).
1. The data set will be built up gradually using the DISP=MOD technique.
2. A non-temporary data set is recreated periodically with varying amounts of data based on run conditions. Automatically releasing unused space should not affect either of these applications, however, because of the way the MVS operating system handles disk space allocation. When a disk data set is initially allocated, the operating system sets aside the primary amount of space requested in the SPACE parameter on the DD statement. If the size of the data set increases beyond the primary allocation, the operating system will allocate secondary space quantities as many as 15 times. Therefore, instead of overallocating the primary space amount, secondary space allocations should be used to provide for data set growth. Even when a data set has used the limit of 15 secondary space allocations, it should not be affected by releasing unused space. This is because during the weekly process of releasing space, multi-extent data sets are reorganized into a single primary space extent. As a result, disk data sets are allowed to use up to 15 secondary allocations per week without requiring any action on the user's part. Although the majority of sequential data sets will not be affected by releasing unused space, there are two problem situations of which users should be aware.
1. If the disk on which a data set resides does not contain enough free space to satisfy a secondary allocation request, data set growth could cause abnormal termination of the program requesting the additional space.
2. Data sets originally allocated with a zero secondary space quantity will have no automatic growth path. The first situation is only a potential problem, whereas the second situation is an actual problem. There is a JCL technique which can be used to provide growth for data sets originally allocated with a zero secondary space quantity. This technique is demonstrated as follows:
//DDNAME DD DSN=J999991.DATASET,DISP=OLD, // SPACE=(mode,(primary,secondary))where "mode" and "primary" are specified exactly as originally specified for the data set and "secondary" indicates the amount of secondary allocation space desired for the data set. This technique must be repeated each time the data set is to be extended or enlarged. UTCC realizes that there are a few critical applications for which even the possibility of not being able to obtain secondary space is unacceptable. Data sets used for these applications require the ability to overallocate disk space in anticipation of future needs. To retain this ability for critical applications, UTCC can provide a facility in which specified sequential data sets do not participate in the automatic release of unused data set space. Users are required to contact their UTCC consultant in order to have a sequential data set registered to participate in this No Space Release facility. Requests for this facility will be reviewed on a case-by-case basis.
//DDNAME DD DSN=J999991.DATASET,DISP=MOD, // SPACE=(mode,(primary,secondary))
//jobname JOB ,name,GROUP=J999991,USER=Pusercode, // PASSWORD=? /*ROUTE PRINT RMTn //stepname EXEC DSLIST
` Data sets must not be declared unmovable.
` The DSORG, BLKSIZE, and RECFM must be set in the VTOC entry
for the data set name to properly describe the data set.
` Indexed sequential data sets must have enough information in
their VTOC entries to allow manual reconstruction of the
allocating DD statements and the execution of the IEBISAM utility
program to move the data set.
` Allocation by absolute track is not permitted.
` The PASSWORD parameter may not be used. (Data set security is provided by RACF; see section 11.6.) ` Generation data sets must not use partitioned data sets as their model data set label.
DATASET profile access settings A DATASET profile controls access by users in one or more of the following categories:
owner group other groups individual users all MVS users (universal access)
Possible access settings are:
NONE allows no access to the data set READ allows user to read the contents of the data set UPDATE allows user to read or write to the data set ALTER allows user to read, write to, create, or delete the data set
DATASET profile access settings for user or group The project director is, by default, the project administrator, and as such, has sole authority to grant others access to the group's MVS disk data sets. Project directors may request that UTCC designate someone else in the group as the project administrator by contacting their UTCC consultants. The project administrator is made the owner of the group's DATASET profiles. This also means that after the group profile is created, only the project administrator may create, modify and delete any of the group's DATASET profiles. So that the research workers assigned to a particular group (the "owner group") can create, delete, update or read MVS disk data sets associated with that group, a PERMIT command was issued by UTCC when the initial DATASET profile for the group was created. This gives the entire group ALTER access to data sets not otherwise protected. Auditing was set to record all accesses, both successful and unsuccessful, to data sets protected by the profile. The "list of groups" access checking feature of RACF has been turned on. This means that access to a protected resource is granted if the user has access through any of the groups to which he/she is connected and is not just based on the group under which the user's job or TSO session is running. To allow access to a group's data sets by other groups or individual users outside that group, the project administrator of the owner group must issue a PERMIT command. An alternative is to change the UACC setting from the default of NONE to either READ, UPDATE, or ALTER, thereby giving all MVS users that level of access. The UTCC User Services consultants have had a PERMIT command issued by UTCC to allow them to continue offering assistance with MVS disk data sets. A project administrator may change that access permission. When a new project code is opened, GROUP and DATASET profiles are created; e.g., if project code 999991 is opened, GROUP profile J999991 and DATASET profile 'J999991.*' are created. The DATASET profile will include access permission for the User Services consultant unless the project administrator requests that such access be denied.
Universal access settings The universal access (UACC) setting in each RACF DATASET profile determines what access level all MVS users and groups other than the owner group have to a data set or group of data sets. The UACC settings that can be assigned are NONE, READ, UPDATE and ALTER. The initial DATASET profile created by UTCC for each group's data sets (profile name 'Jxxxxxx.*') has a UACC setting of NONE. Users may use RACF Report Writer (see below) to obtain information about accesses and attempts to access their projects' MVS data sets. With this information, a project administrator can tailor RACF data set protection to meet the group's particular needs. With the settings of NONE, READ, UPDATE, and ALTER, different levels of access can be provided.
Examples The following examples illustrate the syntax of RACF commands for several common tasks. The RACF commands are discussed further in "Resource Access Control Facility (RACF)," U01-0576, available through the PRTDOC facility. Note that the project administrator must modify existing or create new DATASET profiles only if users who are not connected to the owner group are to be given access to one or more of a group's MVS disk data sets or a user who is connected to the owner group is to be denied ALTER access. The initial DATASET profile for each group's data sets, established by UTCC, grants ALTER access to all users included in the group and denies access to all others except group J2200 (UTCC User Services). All examples assume the project administrator for group J999994 is user P999998.
Example MVS batch job The following example gives the JCL required to issue RACF commands within an MVS batch job. RACF commands can also be issued by using the RACF panels in TSO/ISPF (select R from the local panel). Using the procedure BATCHTSO, submit a standard MVS batch job with the appropriate RACF control statements (see sample statements below).
//jobname JOB ,name,GROUP=J999994,USER=P999998, // PASSWORD=? /*ROUTE PRINT RMTn //stepname EXEC BATCHTSO //SYSIN DD * (RACF control statements)
Example RACF control statements The format of RACF control statements is
operation [positional_operand] keyword_operands
The operation (RACF command) must be coded first and need not begin in column 1. Some statements have a positional operand, a DATASET profile name of the form 'profile_name' (note that the profile name is enclosed in apostrophes), which must follow the operation. Keyword_operands may be in any order, separated by one or more spaces. In Example 1, PERMIT must occur first, 'J999994.*' is positional and must be coded second. The other operands each contain a keyword and may be listed in any desired order. The following examples show several RACF control statements required to alter access authority.
Example 1: To allow programmer P123458 READ access to your group's MVS disk data sets.
PERMIT 'J999994.*' ID(P123458) ACCESS(READ) GENERIC
Example 2: To allow all programmers in group J999992 READ access to your group's MVS disk data sets.
PERMIT 'J999994.*' ID(J999992) ACCESS(READ) GENERIC
Example 3: To allow programmer P888888 ALTER access to read/write/create/delete your group's MVS disk data sets.
PERMIT 'J999994.*' ID(P888888) ACCESS(ALTER) GENERIC
Example 4: To allow programmer P89898 READ access to J999994.GOOD.STUFF only. (You must add a data set description of a fully qualified data set name before the permit is issued.)
ADDSD 'J999994.GOOD.STUFF' UACC(NONE) GENERIC AUDIT(ALL) PERMIT 'J999994.GOOD.STUFF' ID(P89898) ACCESS(READ) GENERIC
Example 5: To revoke permit access granted in Example 4.
PERMIT 'J999994.GOOD.STUFF' ID(P89898) DELETE GENERICThe following examples show the RACF control statements necessary to set access authority for your MVS disk data sets for ALL users of the MVS system.
Example 6: To allow all MVS users READ access to your group's MVS disk data sets.
ALTDSD 'J999994.*' UACC(READ) GENERIC
Example 7: To allow all MVS users ALTER access to read/write/create/delete your group's MVS disk data sets.
ALTDSD 'J999994.*' UACC(ALTER) GENERIC
Example 8: To allow all MVS users READ access to your group's MVS disk data sets and to give programmer P89898 UPDATE access to read and write.
ALTDSD 'J999994.*' UACC(READ) GENERIC PERMIT 'J999994.*' ID(P89898) ACCESS(UPDATE) GENERIC
Example 9: To allow all MVS users READ access to all MVS disk data sets with data set names that start with J999994.GOOFY.
ADDSD 'J999994.GOOFY.*' UACC(READ) GENERICUp to this point the * has been used in the examples as a wild card for any level of a data set name. You can also use the % as a wild card for any single character.
Example 10: To allow all MVS users READ access to all MVS disk data sets with a data set name that starts with J999994.FUDGE.DATA and ends with any two characters.
ADDSD 'J999994.FUDGE.DATA%%' UACC(READ) GENERIC
Example 11: The next example shows how to find out which groups or individual users have access to each of your MVS disk data sets.
LISTDSD ID(J999994) ALL GENERIC
Example 12: The same as Example 11, but provides access information for the single data set J999994.GOOD.STUFF only.
LISTDSD DA('J999994.GOOD.STUFF') ALL GENERIC
//jobname JOB ,name,GROUP=Jprojcode,USER=Pusercode,CLASS=T, // TIME=(1,0), // PASSWORD=? /*ROUTE PRINT destination //stepname EXEC RACFRWTo override the default parameter RPT=SUM and request more detailed information, the last line (the EXEC statement) would be changed to show the appropriate command. For example,
//stepname EXEC RACFRW,RPT=USR
The summary will be for the current month in the current year unless otherwise requested. MONTH='(0)' is the default parameter. Changing this to MONTH='(-1)' will request the previous month; MONTH='(-2)' will request the next previous month, etc. For example, if the February summary is requested during March, MONTH='(-1)' is the parameter used to override the default:
//stepname EXEC RACFRW,MONTH='(-1)' To request reports from a previous year, YEAR='YRnn' must be specified, where 'nn' is a two-digit abbreviation for the year, e.g., '86'. The default parameter of MONTH='(0)' will generate the December summary for that year. To request reports from earlier months in the year, set the parameter as discussed above. For example, the October 1986 summary can be requested with the following:
//stepname EXEC RACFRW,YEAR='YR86',MONTH='(-2)'
August 1986 is the earliest month for which RACF reports can be requested at UTCC.
Additional information "Resource Access Control Facility (RACF)," U01-0576, has further information, including RACF commands. Users may access this document by using the PRTDOC facility on CMS (section 4.11).