Modify catalog entry of file generation group
Component: | BS2000 |
Functional area: | File processing |
Domain: | FILE-GENERATION-GROUP |
Privileges: | STD-PROCESSING |
Routing code: | $ (with NBCONOPI=N) or E (with NBCONOPI=Y) |
Function
The MODIFY-FILE-GROUP-ATTRIBUTES command amends the attributes of a file generation group. Only the owner, any co-owners (see the CREATE-FILE command, “Privileged functions”) and systems support personnel are allowed to modify all the attributes of a file generation group (FGG). Other users, provided they have write permission for the file, are allowed only to modify the CODED-CHARACTER-SET entry.
If the FGG is write-protected by a password, the password must have been added to the password table for the job (see the ADD-PASSWORD command).
The default value *UNCHANGED in the corresponding operands means that the previously valid definition still applies.
Privileged functions
Systems support personnel can supplement the user information in the file catalog with one to eight bytes of information about the file generation group (ADM-INFORMATION operand).
By default, systems support (TSOS privilege) is a co-owner of all the files and file generation groups (and can therefore modify their catalog entries). When SECOS is used, this co-ownership can be restricted for permanent files.
Verifying command execution
The DIALOG-CONTROL operand governs whether a verification dialog is to be conducted with the user. The OUTPUT operand lets the user specify whether each file name that is processed is to be logged in a guaranteed message to SYSOUT. In conjunction with the chargeable SDF-P subsystem, the processed file names can be viewed in the S variable stream for guaranteed messages (SYSMSG; see also the ASSIGN-STREAM and EXECUTE-CMD commands in the “SDF-P” manual [34]).
Overview of functions
Function / Meaning | Level 1 operands | Level 2/3 operands |
---|---|---|
The name of the file generation group (FGG) to be amended |
| |
New name of the FGG | ||
Define the general attributes of the FGG | ||
| MAXIMUM | |
| OVERFLOW-OPTION | |
| BASE-NUMBER | |
Define protection attributes | ||
| PROTECTION-ATTR | |
| ACCESS | |
| USER-ACCESS | |
| BASIC-ACL | |
| PASSWORD | |
| WRITE-PASSWORD/ | |
| DESTROY-BY-DELETE | |
| AUDIT | |
| SPACE-RELEASE-LOCK | |
| EXPIRATION-DATE | |
| FREE-FOR-DELETION | |
For disk files only: | SAVE | |
| BACKUP-CLASS | |
| SAVED-PAGES | |
HSMS storage management class | MANAGEMENT-CLASS | |
Code table (XHCS) | CODED-CHARACTER-SET | |
user information | USER-INFORMATION | |
systems support information | ADM-INFORMATION | |
File selection dialog | DIALOG-CONTROL | |
| =*NO | |
| =*MORE-THAN-ONE-FILE | |
| =*ERROR | |
| =*CATALOG-CHANGE | |
| =*FILE-CHANGE | |
| =*USER-ID-CHANGE | |
Guaranteed message for successfully modified catalog entries | OUTPUT | |
| =*NO | |
| =*SYSOUT |
Format
MODIFY-FILE-GROUP-ATTRIBUTES | Alias: MDFGPA | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operands
GROUP-NAME = <filename 1..47 without-gen-vers with-wild(80)>
Name of an existing file generation group. If the name includes wildcards, or if the specification is partially qualified, the command is executed for the associated set of file generation groups. Processing can be controlled and verified with the aid of the DIALOG-CONTROL and OUTPUT operands. Only systems support personnel (TSOS privilege) is allowed to use wildcards within the user ID.
NEW-NAME = *SAME / <filename 1..47 without-gen-vers with-wild-constr(80)>
Specifies whether the file is to be renamed.
NEW-NAME = *SAME
The current name of the FGG is retained.
NEW-NAME = <filename 1..47 without-gen-vers with-wild-constr(80)>
The FGG is to be renamed. The command is rejected if a catalog entry with the specified name already exists. It is also rejected for FGGs whose generations are on HSMS storage level S1 or S2 (see the STORAGE-LEVEL operand in the SHOW-FILE-ATTRIBUTES command).
If wildcards or a partially qualified name have been specified in the GROUP-NAME operand, a constructor can be used to specify how the new names of the selected FGGs are to be formed. The constructor string should be designed to ensure that the new names are unique; in other words, multiple renames must not produce the same name more than once.
File generations on tape: If some or all of the file generations are stored on tape, their names will be changed only in the catalog entry, not in the tape labels. These file generations can no longer be accessed.
GENERATION-PARAMETER = *UNCHANGED / *GENERATION-PARAMETER(...)
Specifies the attributes of the file generation group.
GENERATION-PARAMETER = *GENERATION-PARAMETER(...)
Attributes of the file generation group.
MAXIMUM = *UNCHANGED / <integer 1..255>
Defines how many file generations may be cataloged at the same time (see the OVERFLOW-OPTION operand).
OVERFLOW-OPTION = *UNCHANGED / *CYCLIC-REPLACE / *REUSE-VOLUME / *DELETE-ALL / *KEEP-GENERATION
Specifies what action is to be taken if the maximum permitted number of file generations is exceeded (see the MAXIMUM operand). When the maximum permitted number is reached, the surplus file generations are deleted regardless of password protection, retention period (EXPIRATION-DATE) and the permitted mode of access (ACCESS).
OVERFLOW-OPTION = *CYCLIC-REPLACE
The current oldest generation is deleted and its storage space, or the tapes it occupies, are released. In the catalog, the entries in the LAST-GEN and FIRST-GEN output fields (most recent/old existing generations) are updated.
OVERFLOW-OPTION = *REUSE-VOLUME
The effect of OVERFLOW-OPTION=*REUSE-VOLUME depends on the storage medium:
For FGGs on public disks: the oldest generation is deleted and its storage space returned to the system; the group entry is updated (see OVERFLOW-OPTION= *CYCLIC-REPLACE).
For FGGs on private disks: the new generation is created and the oldest generation deleted, the volume being used for storage of the new generation. If the generation which is being deleted extends over several disks, the new generation is cataloged only on the first of these disks. The group entry is updated accordingly. Since the old generation is not deleted until the new generation has been created, lack of storage space on the disk may mean that it is impossible to create the new generation, even though OVERFLOW-OPTION=*REUSE-VOLUME is specified.
For FGGs on tape: the oldest generation is deleted from the catalog, and the new generation is created on the tape thus released. The group entry is updated accordingly. OVERFLOW-OPTION=*REUSE-VOLUME is not permitted for file generation groups on multifile tapes (file sets).
OVERFLOW-OPTION = *DELETE-ALL
All generations of the FGG are deleted, and the new generation becomes the oldest one in the new series. The group entry is updated accordingly.
OVERFLOW-OPTION = *KEEP-GENERATION
The file generations are not automatically deleted. The oldest file generations which overshoot the maximum are not deleted until OVERFLOW-OPTION or BASE-NUMBER is modified.
BASE-NUMBER = *UNCHANGED / *ABSOLUTE(...) / *RELATIVE-TO-LAST-GENERATION(...)
Defines a reference point/a base generation to which all relative generation numbers refer. The names of the file generations can be specified with absolute (*n) or relative (±n) generation numbers.
BASE-NUMBER = *ABSOLUTE(...)
Specifies the base value as an absolute value.
NUMBER = <integer 0..9999>
The generation number which represents the base value in absolute terms. Only the number of an existing, nonsurplus file generation may be specified.
BASE-NUMBER = *RELATIVE-TO-LAST-GENERATION(...)
Specifies the base value indirectly:
NUMBER = <integer -99..0>
The value whose magnitude is to be subtracted from the last file generation number to give the absolute base value. The absolute base value calculated in this way must be the number of an existing, nonsurplus generation.
PROTECTION = *UNCHANGED / *PARAMETERS(...)
The protection attributes for the FGG.
PROTECTION = *PARAMETERS(...)
The file generation group is given the specified protection attributes. For descriptions of the PROTECTION-ATTR, ACCESS, USER-ACCESS, BASIC-ACL, GUARDS, WRITE-PASSWORD, READ-PASSWORD, DESTROY-BY-DELETE, AUDIT, SPACE-RELEASE-LOCK, EXPIRATION-DATE and FREE-FOR-DELETION operands, see the corresponding operand descriptions for the MODIFY-FILE-ATTRIBUTES command.
Notes
Since file generations are not executable (program or procedure), they cannot be protected with an execute password (EXEC-PASSWORD). Likewise, for the same reason no execute permission can be set within BASIC-ACL or GUARDS.
The protection attribute EXPIRATION-DATE is of no effect for file generations that have not been opened yet (
CRE-DATE=NONE
).
STOR-CLASS-DEFAULT = *UNCHANGED / *STD / <composed-name 1..8> / *NONE
The operand is evaluated only for file generation groups in SM pubsets. Governs the properties of the storage location if no explicit specification is made when the file generation is created.
Assigning a storage class simplifies the automatic management of storage space in an SM pubset (for details see the “Introduction to System Administration” [14]). The SHOW-STORAGE-CLASS command allows users to find out which storage classes of an SM pubset are available to them and which file attributes are set.
A file generation group for work files cannot be converted to a file generation group for normal files and vice versa.
The only specification allowed for a file generation group in an SF pubset is STOR-CLASS-DEFAULT=*NONE.
STOR-CLASS-DEFAULT = *STD
The pubset-specific default storage class from the user entry is used as the default storage class for the file generation group. If the file generation group is to be created in an SF pubset or if there is no default storage class defined in the user entry, the file generation group is given the same attributes as with STOR-CLASS-DEFAULT=*NONE.
STOR-CLASS-DEFAULT = <composed-name 1..8>
The file generation group is assigned the specified storage class. The storage class must exist and be accessible to the user at the time when the assignment is made. This specification is ignored for a file generation group in an SF pubset; the FGG is then given the same attributes as with STOR-CLASS-DEFAULT=*NONE.
STOR-CLASS-DEFAULT = *NONE
The value has the same effect as *UNCHANGED if all the following conditions are fulfilled:
The file generation group is located on a volume set for permanent data storage.
A default storage class is assigned to the user ID at the SM pubset in question.
Physical allocation is not permitted.
In all other cases, the properties of the file generation group’s storage location are determined on the basis of the *NONE(...) structure and no storage class is assigned to the file generation group or an already assigned storage class is withdrawn.
The properties of the storage location for the file generations are governed by the specifications in the CREATE-FILE-GENERATION or MODIFY-FILE-GENERATION-SUPPORT command.
For descriptions of the SAVE, MANAGEMENT-CLASS, CODED-CHARACTER-SET, USER-INFORMATION, ADM-INFORMATION, DIALOG-CONTROL, and OUTPUT operands, see the corresponding operand descriptions for the MODIFY-FILE-ATTRIBUTES command.
Return codes
(SC2) | SC1 | Maincode | Meaning/Guaranteed messages |
---|---|---|---|
0 | CMD0001 | Command executed | |
2 | 0 | DMS051E | Inconsistency in private disk pool or operand error detected |
2 | 0 | DMS0546 | Catalog entry for specified file has reached maximum size |
2 | 0 | DMS054A | Insufficient disk space or access to disk not possible |
2 | 0 | DMS06A9 | Some generations of this FGG are missing |
2 | 0 | DMS06CA | Command executed, but invalid specification in BASE-NUMBER operand ignored |
1 | CMD0202 | Syntactical or semantic error in command | |
32 | DMS0584 | A state that does not allow the function to continue was reported during processing | |
32 | DMS05C7 | Unexpected internal error in DMS | |
64 | CMD0102 | Wildcard selection action: processing interrupted by *TERMINATE or by K2 key in verification dialog | |
64 | CMD0216 | Privileges error | |
64 | DMS0501 | Requested catalog not available | |
64 | DMS0512 | Requested catalog not available | |
64 | DMS051B | Requested user ID not in pubset | |
64 | DMS051C | User not authorized to access pubset | |
64 | DMS0535 | Specified file not shareable | |
64 | DMS053E | File already cataloged on private volume | |
64 | DMS055C | Catalog entry not found on specified private disk | |
64 | DMS0579 | Invalid operand for temporary file or work file | |
64 | DMS057A | Specified storage class not compatible with WORK-FILE attribute | |
64 | DMS057B | Invalid operand for migrated file | |
64 | DMS057C | Processing not possible due to HSMS error | |
64 | DMS057E | File has been migrated, and HSMS is not available | |
64 | DMS057F | Renaming of migrated file not permitted | |
64 | DMS0585 | Error detected during catalog processing or multihost processing | |
64 | DMS0586 | Currently not possible to access or reserve volume | |
64 | DMS0587 | Use of specified command restricted by system administrator | |
64 | DMS059F | Specified value for number of backup versions invalid | |
64 | DMS05B5 | Guard not available | |
64 | DMS05CC | File name already cataloged | |
64 | DMS05CE | First file name not cataloged | |
64 | DMS05FC | Specified user ID not in HOME pubset | |
64 | DMS0609 | No access to system file | |
64 | DMS060D | Invalid file name for reference file (PROTECTION-ATTR) | |
64 | DMS0610 | Wildcard selection action: command execution defective for at least one of the selected FGGs | |
64 | DMS0613 | Unknown management class | |
64 | DMS0618 | Unknown storage class | |
64 | DMS061A | Storage class catalog could not be read | |
64 | DMS06FF | BCAM connection severed | |
128 | DMS0506 | Function not executed due to change in master | |
130 | DMS0586 | Currently not possible to access or reserve volume | |
130 | DMS0588 | It was not possible to allocate disk space | |
130 | DMS0524 | System address space full | |
130 | DMS053C | No space in pubset catalog file | |
130 | DMS0582 | File is currently locked or being used and cannot be processed | |
130 | DMS0585 | Error detected during catalog processing or multihost processing | |
130 | DMS0594 | Not enough virtual memory available | |
130 | DMS05C8 | Maximum permitted number of files reached |
Examples
Example 1: Changing the file attributes of a file generation group (OVERFLOW-OPTION)
/show-file-attr max.group.2,inf=(org=*yes) ———————————————— (1)
%0000000000 :2OSG:$USER1.MAX.GROUP.2 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = CYCL-REPL % FIRST-GEN = 7 LAST-GEN = 9 %:2OSG: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/show-file-attr max.group.2,select=(generation=*yes) —————— (2)
% 0 :2OSG:$USER1.MAX.GROUP.2 (FGG) % 3 :2OSG:$USER1.MAX.GROUP.2(*0007) % 3 :2OSG:$USER1.MAX.GROUP.2(*0008) % 3 :2OSG:$USER1.MAX.GROUP.2(*0009) %:2OSG: PUBLIC: 4 FILES RES= 9 FRE= 9 REL= 9 PAGES
/mod-file-gr max.group.2,gen-par=(overflow-option=*keep-gen) — (3)
/cre-file-gen max.group.2(*10)
/cre-file-gen max.group.2(*11)
/show-file-attr max.group.2,inf=(org=*yes) —————————————————————— (4)
%0000000000 :2OSG:$USER1.MAX.GROUP.2 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = KEEP-GEN % FIRST-GEN = 7 LAST-GEN = 11 %:2OSG: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/show-file-attr max.group.2,select=(generation=*yes) ————————— (5)
% 0 :2OSG:$USER1.MAX.GROUP.2 (FGG) % 3 :2OSG:$USER1.MAX.GROUP.2(*0007) % 3 :2OSG:$USER1.MAX.GROUP.2(*0008) % 3 :2OSG:$USER1.MAX.GROUP.2(*0009) % 3 :2OSG:$USER1.MAX.GROUP.2(*0010) % 3 :2OSG:$USER1.MAX.GROUP.2(*0011) %:2OSG: PUBLIC: 6 FILES RES= 15 FRE= 15 REL= 15 PAGES
/mod-file-gr max.group.2,gen-par=(overflow-option=*cyclic-replace) —— (6)
/show-file-attr max.group.2,inf=(org=*yes) —————————————————————————— (7)
% 0 :2OSG:$USER1.MAX.GROUP.2 (FGG) % 3 :2OSG:$USER1.MAX.GROUP.2(*0009) % 3 :2OSG:$USER1.MAX.GROUP.2(*0010) % 3 :2OSG:$USER1.MAX.GROUP.2(*0011) %:2OSG: PUBLIC: 4 FILES RES= 9 FRE= 9 REL= 9 PAGES
/show-file-attr max.group.2,select=(generation=yes)
% 0 :2OSG:$USERXY01.MAX.GROUP.2 (FGG) % 9 :2OSG:$USERXY01.MAX.GROUP.2(*0009) % 9 :2OSG:$USERXY01.MAX.GROUP.2(*0010) % 9 :2OSG:$USERXY01.MAX.GROUP.2(*0011) %:2OSG: PUBLIC: 4 FILES RES= 27 FRE= 27 REL= 27 PAGES
(1) | Shows the file attributes of the file generation group MAX.GROUP.2 (group entry). A maximum of 3 generations can exist. Every additional generation would replace the oldest existing generation at the time (OVERFLOW-OPTION= *CYCLIC-REPLACE). |
(2) | Shows the file generation group MAX.GROUP.2 along with the associated generations. Generations *0007 to *0009 exist. |
(3) | The OVERFLOW-OPTION specification is modified to KEEP-GENERATION. Generations *0010 and *0011 are then created. |
(4) | Output of the modified group entry. |
(5) | Shows the group entry and all associated generations. There are now five existing generations. The generations *0007 and *0008 were not deleted when creating generations *0010 and *0011! |
(6) | The OVERFLOW-OPTION specification now changed to CYCLIC-REPLACE. |
(7) | Shows the modified group entry and the associated file generations. The “excess” generations *0007 and *0008 were deleted. |
Example 2: Changing the file attributes of a file generation group (BASE-NUMBER)
/show-file-attr max.group.2,inf=(org=*yes)
—————————————————————— (1)
%0000000000 :2OSG:$USER1.MAX.GROUP.2 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = CYCL-REPL % FIRST-GEN = 9 LAST-GEN = 11 %:2OSG: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES %00000000 :2OS2:$USER1.MAX.GROUP.2 (FGG)
/show-file-attr max.group.2,select=(generation=yes) ———————————— (2)
% 0 :2OSG:$USERXY01.MAX.GROUP.2 (FGG) % 9 :2OSG:$USERXY01.MAX.GROUP.2(*0009) % 9 :2OSG:$USERXY01.MAX.GROUP.2(*0010) % 9 :2OSG:$USERXY01.MAX.GROUP.2(*0011) %:2OSG: PUBLIC: 4 FILES RES= 27 FRE= 27 REL= 27 PAGES
/cre-file-gen max.group.2(+1) —————————————————————————————————————— (3)
% CMD0051 INVALID OPERAND 'GENERATION-NAME' —————————————————————————————————— (4) % DMS0681 DMS ERROR '06C7' WHEN ACCESSING FILE ':2OSG:$USER1.MAX.GROUP.2(+01)'. FOR FURTHER INFORMATION: /HELP-MSG DMS06C7
/mod-file-gr max.group.2,gen-par=(base-number=absolut(11)) ————— (5)
/cre-file-gen max.group.2(+1) ————————————————————————————————— (6)
/cre-file-gen max.group.2(+2)
/show-file-attr max.group.2,inf=(org=*yes) ————————————————————— (7)
%0000000000 :2OSG:$USER1.MAX.GROUP.2 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 11 OVERFL-OPT = CYCL-REPL % FIRST-GEN = 11 LAST-GEN = 13 %:2OSG: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/show-file-attr max.group.2,select=(generation=yes)
% 0 :2OSG:$USER1.MAX.GROUP.2 (FGG) % 3 :2OSG:$USER1.MAX.GROUP.2(*0011) % 3 :2OSG:$USER1.MAX.GROUP.2(*0012) % 3 :2OSG:$USER1.MAX.GROUP.2(*0013) %:2OSG: PUBLIC: 4 FILES RES= 9 FRE= 9 REL= 9 PAGES
(1) | Shows the group entry for the file generation group MAX.GROUP.2. The value entered as the base number for relative generation numbers is zero. |
(2) | Shows all associated generations. The existing generations are *0009 to *0011. |
(3) | The relative generation number +1 is specified in an attempt to create a new generation. |
(4) | The CREATE-FILE-GENERATION command is rejected since the +1 specification in relation to the base number zero would produce generation *0001, and the last created generation is *0011. |
(5) | The base number in the group entry is set to the number of the last generation created (*0011). This makes it possible to begin relative specifications with +1 again (instead of +12). |
(6) | Generation *0012 and *0013 are created by specifying the relative generation numbers +1 and +2. |
(7) | Shows the group entry and all associated generations. |