Create new file generation for 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 CREATE-FILE-GENERATION command creates a new file generation for a file generation group (which already exists). File attributes such as the generation name, the specification of the volume, the storage allocation, and performance attributes can be defined (see “Overview of functions”). The file protection and data backup attributes are defined once only for the entire file generation group using the CREATE-FILE-GROUP command. User and systems support information (see the USER-INFORMATION and ADM-INFORMATION operands) is not copied from the group entry but can be defined separately for each file generation.
A file generation group write-protected by BASIC-ACL or GUARDS cannot be extended.
For basic information on file generations and file generation groups, see the “Introductory Guide to DMS” [13].
Privileged functions
The following functions are available to nonprivileged users only if physical allocation of public space is allowed (see “Privileged functions” in the function description of the CREATE-FILE command):
explicit specification (values other than the default, *STD) of a volume or volume set in the VOLUME and VOLUME-SET operands in the structure SUPPORT=*PUBLIC-DISK (STORAGE-CLASS=*NONE(...))
absolute space reservation using SPACE=*ABSOLUTE(...) in the structure SUPPORT=*PUBLIC-DISK(...) (note that no authorization is required for SUPPORT=*PRIVATE-DISK)
Systems support personnel can supplement the user information in the file catalog with one to eight bytes of information about the file generation (ADM-INFORMATION operand).
By default, systems support (TSOS privilege) is a co-owner of all the files (and can, therefore, create file generations under all user logons). When SECOS is used, this co-ownership can be restricted.
In conjunction with the SECOS software product a user can allow other user IDs to act as co-owners of the file generation groups of his user ID. Co-owners of a user ID are then also allowed to create file generations under that ID.
File generations in SM pubsets
See the function description of the CREATE-FILE command, sections “Files in SM pubsets” and “Physical allocation in SM pubsets”.
Work files
When a file generation is created in an SM pubset, the CREATE-FILE-GROUP command is used to define whether the file generation group is to have the work file attribute (WORK-FILE-GROUP=*YES). For more information on work files see the “Introductory Guide to DMS” [13]. If the file generation is assigned a storage class (explicitly or implicitly, see STORAGE-CLASS operand), the value specified for the WORK-FILE attribute must match the group entry of the file generation group.
File generations on tape (magnetic tape/tape cartridge)
In conjunction with a group entry on a public volume, file generations can also be stored on tape (operand SUPPORT=*TAPE). When creating or accessing the catalog entry of file generations on tape, some special points relating to the use of tapes should be taken into account.
For file generations with standard labels, details of shareability (USER-ACCESS), access type (ACCESS) and passwords are transferred from the catalog entry to the tape labels when the file is created (OPEN). The BASIC-ACL, and GUARDS protection attributes are not transferred.
No access checking is performed when a file generation is created on tape. That means that write protection even for a tape file generation that has yet to be created can be set to ACCESS=*READ. The file generation can be opened and created as an output file; write protection does not come into effect until after it has been created.
The protection attributes of the file generation group can be modified with the MODIFY-FILE-GROUP-ATTRIBUTES command. For any file generations already created on tape, the change is made only in the file catalog, not in the tape labels.
Access (OPEN) to an existing tape file generation is checked against the protection attributes stored in the file catalog. The entries in the labels are disregarded.
When a tape file generation is imported, access checking is based on the protection attributes stored in the file labels. If the tape file generation was password-protected when it was created, the same password must be specified again when it is imported, even if the file generation group is now protected by a different password or none at all.
Overview of functions
Function / Meaning | Level 1 operands | Level 2/3 operands |
---|---|---|
Specify name of file generation |
| |
Specify the volume | SUPPORT | |
Volume: pubset | ||
| STORAGE-CLASS | |
| IO-ATTRIBUTES | |
| DISK-WRITE | |
| AVAILABILITY | |
| FILE-PREFORMAT | |
| VOLUME-SET | |
| VOLUME | |
| DEVICE-TYPE | |
| USER-INFORMATION | |
| ADM-INFORMATION | |
Volume: private disk | = *PRIVATE-DISK | |
| DEVICE-TYPE | |
| VOLUME | |
| SPACE | |
| DATA-SUPPORT | |
Volume: tape | = *TAPE | |
| DEVICE-TYPE | |
| VOLUME | |
| PREMOUNT-LIST | |
Error handling if the file already exists | SUPPRESS-ERRORS | |
| = *NONE | |
| = *FILE-EXISTING |
Format
CREATE-FILE-GENERATION | Alias: CRFGN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operands
GENERATION-NAME = <filename 1..54 without-vers>
The name of the new file generation.
The catalog and user IDs must match those for the file generation group. Only the user’s own user ID or a user ID for which the user is co-owner may be specified. Systems support personnel (TSOS privilege) may specify any user ID. The number specified for the new file generation can be either absolute or relative (to the BASE-NUMBER value of the group entry); for details see the “Introductory Guide to DMS” [13]. Regardless of how it is specified, the number of the new file generation must in absolute terms be the group entry’s LAST-GEN value incremented by 1, if the value of LAST-GEN is 9999, the value for the new generation must be 1 (see also the BASE-NUMBER and LAST-GEN output fields of the SHOW-FILE-ATTRIBUTES command).
SUPPORT = *PUBLIC-DISK(...)
Indicates that the file generation is to be set up on a public disk. The pubset (related set of public disks) on which the file generation is to be created is uniquely identified by the (explicitly specified or default) catalog ID in the file name.
STORAGE-CLASS = *STD / <composed-name 1..8> / *NONE(...)
Governs the properties of the file generation’s storage location. Systems support defines storage classes to facilitate automatic management of storage space in SM pubsets. A storage class is allocated certain file attributes which are implicitly set for all files assigned to that storage class. If a storage class is specified, there is no need to explicitly specify values for the VOLUME-SET, VOLUME, DEVICE-TYPE, IO-ATTRIBUTES, DISK-WRITE, FILE-PREFORMAT and AVAILABILITY operands. The WORK-FILE attribute of the storage class must match that of the group entry.
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.
STORAGE-CLASS = *STD
A file generation in an SM pubset is assigned the default storage class from the file generation group’s group entry. The default storage class is governed by the STOR-CLASS-DEFAULT operand of the CREATE-FILE-GROUP or MODIFY-FILE-GROUP-ATTRIBUTES command. If the file generation is to be created in an SF pubset or if there is no default storage class defined, the file generation is given the same attributes as with STORAGE-CLASS=*NONE with default values.
STORAGE-CLASS = <composed-name 1..8>
A file generation in an SM pubset 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 in an SF pubset; the file is then given the same attributes as with STORAGE-CLASS=*NONE with default values.
STORAGE-CLASS = *NONE(...)
STORAGE-CLASS=*NONE has the same effect as *STD if all the following conditions are met:
The file generation is created on a volume set intended for permanent storage.
A default storage class is assigned to the user ID at the SM pubset in question.
Physical allocation is not permitted.
Only in this case are the operands PERFORMANCE, USAGE, DISK-WRITE, and AVAILIBILITY are ignored.
In all other cases, the properties of the file generation storage location are determined by the operands of the structure *NONE(...) and no storage class is assigned to the file generation.
The WORK-FILE attribute is copied from the group entry (see the CREATE-FILE-GROUP command, WORK-FILE-GROUP operand).
For a description of the remaining operands, see the CREATE-FILE 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 |
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 | 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 | DMS0533 | Requested file not cataloged in pubset | |
64 | DMS053E | File already cataloged on private volume | |
64 | DMS0555 | Specified file name already cataloged | |
64 | DMS0557 | Invalid volume specification | |
64 | DMS057A | Invalid combination of file attributes and storage class | |
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 | DMS0588 | It was not possible to allocate disk space | |
64 | DMS05BD | Invalid combination of file and volume set attributes | |
64 | DMS05CC | File name already cataloged | |
64 | DMS05FC | Specified user ID not in HOME pubset | |
64 | DMS0618 | Unknown storage class | |
64 | DMS061A | Storage class catalog could not be read | |
64 | DMS0683 | File already exists | |
64 | DMS06C4 | File generation group not yet cataloged | |
64 | DMS06FF | BCAM connection severed | |
128 | DMS0506 | Function not executed due to change in master | |
130 | DMS0524 | System address space full | |
130 | DMS053C | No space in pubset catalog file | |
130 | DMS0582 | File is currently locked or in use and cannot be processed | |
130 | DMS0585 | Error detected during catalog processing or multihost processing | |
130 | DMS0586 | Currently not possible to access or reserve volume | |
130 | DMS0588 | It was not possible to allocate disk space | |
130 | DMS0594 | Not enough virtual memory available | |
130 | DMS05C8 | Maximum permitted number of files reached |
Examples
Example 1: Creating a file generation
/create-file-group group-name=max.group.1,
gen-par=(max=3,ov-opt=del-all,vol=work01,dev-type=d3435)
(1) —————
/show-file-attr group-name=max.group.1,inf=(organisation=*yes)
(2)——————
%0000000000*:2OSG:$USER1.MAX.GROUP.1 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = DELETE-ALL % FIRST-GEN = 0 LAST-GEN = 0 % EXTENTS VOLUME DEVICE-TYPE % WORK01 D3435 %:2OSG: PRDISC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/cre-file-gen max.group.1(*1)
———————————————————————————————————————
(3)
% DMS0681 DMS ERROR '06DA' WHEN ACCESSING FILE ':2OSG:$USER1.MAX.GROUP.1(*0001) '. FOR FURTHER INFORMATION: /HELP-MSG DMS06DA
/help-msg dms06da,lang=d
(4)—————————————————————————————————————————
——
% DMS06DA UNZULAESSIGE KOMBINATION VON PRIVATEN UND OEFFENTLICHEN DATENTRAEGERN FUER EINE DATEI-GENERATIONS-GRUPPE IM ANGEGEBENEN KOMMANDO % ? Der Benutzer versuchte, eine Generation auf einer privaten Platte % zu erstellen und die Dateigenerationsgruppe befindet sich auf einem % oeffentlichen Datentraeger oder es wurde versucht eine Generation % auf oeffentlichem Datentraeger bzw. Band zu erstellen und die % Dateigenerationsgruppe befindet sich auf privater Platte. % ! Wenn die Dateiengenerationsgruppe auf der privaten Platte % verbleibt, muss die Generation auf der privaten Platte erstellt werden. % Wenn sie auf einem oeffentlichen Datentraeger verbleibt, muss % die Generation auf einem oeffentlichten Datentraeger oder auf % einem Band bleiben.
/cre-file-gen max.group.1(*1),support=*priv(vol=work01,dev-type=d3435)
(5)—
/cre-file-gen max.group.1(*2),support=*priv(vol=work01,dev-type=d3435)
/cre-file-gen max.group.1(*3),support=*priv(vol=work01,dev-type=d3435)
/show-file-attr f-name=max.group.1,select=by-attr(gen=y )
(6)—————————————
% 0*:2OSG:$USER1.MAX.GROUP.1 (FGG) % 3*:2OSG:$USER1.MAX.GROUP.1(*0001) % 3*:2OSG:$USER1.MAX.GROUP.1(*0002) % 3*:2OSG:$USER1.MAX.GROUP.1(*0003) %:2OSG: PRDISC: 4 FILES RES= 9 FRE= 9 REL= 0
/show-file-attr f-name=max.group.1,inf=(organization=*yes)
(7)————————————
%00000000*:2OSG:$USER1.MAX.GROUP.1 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- %0000000000*:2OSG:$USER1.MAX.GROUP.1 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = DELETE-ALL % FIRST-GEN = 1 LAST-GEN = 3 % EXTENTS VOLUME DEVICE-TYPE % WORK01 D3435 %:2OSG: PRDISC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/cre-file-gen max.group.1(*4),support=*priv(vol=work01,dev-type=d3435)
(8)——
/show-file-attr max.group.1,inf=(organization=*yes)
(9)————————————————————
%0000000000*:2OSG:$USER1.MAX.GROUP.1 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = DELETE-ALL % FIRST-GEN = 4 LAST-GEN = 4 % EXTENTS VOLUME DEVICE-TYPE % WORK01 D3435 %:2OSG: PRDISC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/show-file-attr max.group.1,select=*by-attr(gen=*yes)
0000000000*:2OSG:$USER1.MAX.GROUP.1 (FGG) ------------------------------- GENERATION-INFO ---------------------------- MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = DELETE-ALL FIRST-GEN = 4 LAST-GEN = 4 EXTENTS VOLUME DEVICE-TYPE WORK01 D3435 0000000003*:2OSG:$USER1.MAX.GROUP.1(*0004) ------------------------------- ORGANIZATION ------------------------------- FILE-STRUC = NONE BUF-LEN = NONE BLK-CONTR = NONE IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE REC-FORM = NONE REC-SIZE = 0 AVAIL = *STD :2OSG: PRDISC: 2 FILES RES= 3 FRE= 3 REL= 0 PAGES
(1) | A group entry is created for the file generation group MAX.GROUP.1 on the private disk WORK01. A maximum of 3 file generations (MAXIMUM=3) are to be permitted. If this maximum is exceeded, all existing generations are to be deleted (OVERFLOW-OPTION=*DELETE-ALL). |
(2) | The command SHOW-FILE-ATTRIBUTES displays the group entry. |
(3) | The command CREATE-FILE-GENERATION is to be used to create the first file generation. |
(4) | The command will be rejected. The command HELP-MSG-INFORMATION is used to obtain information on the error (DMS06DA) that occurred. The group entry is located on private disk. Since the operand SUPPORT was not specified for the file generation *0001, an attempt was made to create the first file generation on public disk. |
(5) | The file generations *0001, *0002, and *0003 are created on the private disk WORK01. |
(6) | The command SHOW-FILE-ATTRIBUTES returns information on the group entry and the associated file generations (since GENERATION=*YES). |
(7) | The command SHOW-FILE-ATTRIBUTES shows the attributes of the group entry that affect file generations (since ORGANIZATION=*YES). |
(8) | The file generation *0004 is created. Since OVERFLOW-OPTION=*DELETE-ALL is defined, and the maximum has been reached, the earlier generations should have been deleted in the process. |
(9) | The following SHOW-FILE-ATTRIBUTES command indicates that only the group entry and the last created generation (*0004) exist. |
Example 2: Creating file generations (read password)
/create-file-group group-name=max.group.2,gen-par=(max=3),
prot=(read-pass='paul')
(1)
———————————————————————————————————————
/show-file-attr max.group.2,inf=(organization=*yes,security=*yes)
(2)———
%0000000000 :2OSG:$USER1.MAX.GROUP.2 (FGG) % ------------------------------- SECURITY ------------------------------- % READ-PASS = YES WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-18 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = CYCL-REPL % FIRST-GEN = 0 LAST-GEN = 0 %:2OSG: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/cre-file-gen max.group.2(*1)
(3) ——————————————————————————————————————
% DMS0681 DMS ERROR '05D8' WHEN ACCESSING FILE ':2OSG:$USER1.MAX.GROUP.2(*0001) '. FOR FURTHER INFORMATION: /HELP-MSG DMS05D8
/help-msg dms05d8,lang=d
(4)———————————————————————————————————————
% DMS05D8 DATEI GESCHUETZT. ZUGEHOERIGES KENNWORT EINGEBEN UND KOMMANDO WIEDERH OLEN % ? Der Benutzer versuchte fuer eine Datei, die mit einem Kennwort % katalogisiert war, den Dateikatalog zu modifizieren, ohne dass ein % Kennwort in der Kennworttabelle vorhanden ist. % Das Kennwort fuer die vorher katalogisierte Datei wurde ueber das % Kennwortkommando dem System nicht mitgeteilt. % ! Das Dateikennwort ueber das /ADD-PASSWORD-Kommando angeben und danach das % Kommando wiederholen.
/add-pass 'paul'
(5) ———————————————————————————————————————
————————————
/cre-file-gen max.group.2(*1)
(6) ——————————————————————————
————————————
/cre-file-gen max.group.2(*3)
(7)——————————————————————————
————————————
% DMS0681 DMS ERROR '06C7' WHEN ACCESSING FILE ':2OSG:$USER1.MAX.GROUP.1(*0001) '. FOR FURTHER INFORMATION: /HELP-MSG DMS06C7
/help-msg dms06c7,lang=d
(8)——————————————————————————
————————————
—————
% DMS06C7 UNGUELTIGE GENERATIONSNUMMER IM KOMMANDO. NUMMERN MUESSEN AUFSTEIGEND UND LUECKENLOS SEIN. KOMMANDO NICHT AUSGEFUEHRT % ? Generationsdateien muessen katalogisiert werden mit aufsteigend geordneten % Generationsnummern, wobei keine Luecken in der Folge der % Generationsnummern % vorkommen duerfen. % MASSNAHME : KEINE
/cre-file-gen max.group.2(*2)
(9) ——————————————————————————
————————————
/cre-file-gen max.group.2(*3)
/cre-file-gen max.group.2(*4)
/show-file-attr max.group.2,select=(gen=yes)
(10)——————————————————————
% 0 :2OSG:$USER1.MAX.GROUP.2 (FGG) % 3 :2OSG:$USER1.MAX.GROUP.2(*0002) % 3 :2OSG:$USER1.MAX.GROUP.2(*0003) % 3 :2OSG:$USER1.MAX.GROUP.2(*0004) %:2OSG: PUBLIC: 4 FILES RES= 9 FRE= 9 REL= 9 PAGES /show-file-attr max.group.2,inf=(organization=*yes) %0000000000 :2OSG:$USER1.MAX.GROUP.2 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = CYCL-REPL % FIRST-GEN = 2 LAST-GEN = 4 %:2OSG: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
(1) | A group entry is created for the file generation group MAX.GROUP.2 on the public disk WORK01. A maximum of 3 file generations (MAXIMUM=3) is to be permitted. For each new created generation that would cause the maximum to be exceeded, the oldest existing generation is to be deleted (default value OVERFLOW-OPTION=*CYCLE-REPLACE). The read password PAUL (which is replaced by “P” in logs) is defined for file protection. The protection attributes apply to the group entry and to all generations of the file generation group. |
(2) | The command SHOW-FILE-ATTRIBUTES displays the group entry along with its protection and file generation attributes. |
(3) | The command CREATE-FILE-GENERATION is to be used to create the first file generation. |
(4) | The command will be rejected. The command HELP-MSG-INFORMATION is used to obtain information on the error (DMS05D8) that occurred. In this case, the group entry, which is updated on creating a new generation, could not be changed due to the password protection. |
(5) | The password PAUL is entered into the password table of the task. |
(6) | Generation *0001 is created. |
(7) | An attempt is made to create generation *0003. |
(8) | The command will be rejected. In this case, the next generation to be created must be generation *0002, since no gaps are permitted in generation numbers. |
(9) | Generations *0002, *0003, and *0004 are created. |
(10) | The following SHOW-FILE-ATTRIBUTES commands show the group entry and all existing generations: generation *0004 exceeded the defined maximum of three generations. That is why the oldest generation was deleted when creating it (default value OVERFLOW-OPTION=*CYCLE-REPLACE). |