Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

CREATE-FILE-GENERATION

&pagelevel(3)&pagelevel

Create new file generation for file generation group

Component:

BS2000

Functional area:

File processing

Domain:

FILE-GENERATION-GROUP

Privileges:

STD-PROCESSING
TSOS

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
Work files
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

GENERATION-NAME =

                                          

Specify the volume

SUPPORT


Volume: pubset

SUPPORT = *PUBLIC-DISK(...)


  • Specify storage class


STORAGE-CLASS

  • Performance requirements

    • performance attribute

    • type of I/O operations


IO-ATTRIBUTES
PERFORMANCE
USAGE

  • Define time when data consistency is required after write operations


DISK-WRITE

  • Define availability requirements


AVAILABILITY

  • preferred file format


FILE-PREFORMAT

  • Specify volume set


VOLUME-SET

  • Specify the volume


VOLUME

  • Specify device type


DEVICE-TYPE

  • User information


USER-INFORMATION

  • Systems support information


ADM-INFORMATION

Volume: private disk

= *PRIVATE-DISK

  • Specify device type


DEVICE-TYPE

  • Request volume(s)


VOLUME

  • Storage space allocation


SPACE

  • Separate storage of data/index forISAM files


DATA-SUPPORT

Volume: tape

= *TAPE


  • Specify device type


DEVICE-TYPE

  • Request volume(s)


VOLUME

  • Request tape device


PREMOUNT-LIST

Error handling if the file already exists

SUPPRESS-ERRORS


  • Normal error handling

= *NONE


  • Suppress error handling

= *FILE-EXISTING


Table 36: Overview of CREATE-FILE-GENERATION command functions

Format

CREATE-FILE-GENERATION

Alias: CRFGN

 GENERATION-NAME = <filename 1..54 without-vers>

,SUPPORT = * PUBLIC-DISK (...) / *PRIVATE-DISK(...) / *TAPE(...) / *NONE


* PUBLIC-DISK (...)



|


STORAGE-CLASS = *STD / <composed-name 1..8> / *NONE(...)



|




*NONE(...)



|





|


IO-ATTRIBUTES = *STD / [*PARAMETERS](...)



|





|



[*PARAMETERS](...)



|





|




|


PERFORMANCE = *STD / *HIGH / *VERY-HIGH / *USER-MAXIMUM



|





|




|


,USAGE = *READ-WRITE / *WRITE / *READ



|





|


,DISK-WRITE = *STD / *IMMEDIATE / *BY-CLOSE



|





|


,AVAILABILITY = *STD / *HIGH



|





|


,FILE-PREFORMAT = *BY-PUBSET-DEFAULT / *K / *NK2 / *NK4



|





|


,VOLUME-SET = *STD / *CONTROL-VOLUME-SET / <cat-id 1..4>



|





|


,VOLUME = *STD / list-poss(255): <vsn 1..6>



|





|


,DEVICE-TYPE = *BY-VOLUME / <device>



|


,SPACE = *STD / *RELATIVE(...) / *ABSOLUTE(...)



|




*RELATIVE(...)



|





|


PRIMARY-ALLOCATION = <integer 1..2147483647>



|





|


,SECONDARY-ALLOCATION = *STD / <integer 0..32767>



|




*ABSOLUTE(...)



|





|


FIRST-PAGE = <integer 1..2147483647>



|





|


,SIZE = <integer 1..2147483647>



|


,USER-INFORMATION = *NONE / <c-string 1..8 with-low>



|


,ADM-INFORMATION = *NONE / <c-string 1..8 with-low>


*PRIVATE-DISK(...)



|


VOLUME = [ *ANY ](...) / list-poss(255): <alphanum-name 1..6>



|




[ *ANY ](...)



|





|


NUMBER-OF-DEVICES = 1 / <integer 1..9>



|


,DEVICE-TYPE = *BY-VOLUME-CATALOG / <device>



|


,SPACE = *STD / *RELATIVE(...) / *ABSOLUTE(...)



|




*RELATIVE(...)



|





|


PRIMARY-ALLOCATION = <integer 1..2147483647>



|





|


,SECONDARY-ALLOCATION = *STD / <integer 0..32767>



|




*ABSOLUTE(...)



|





|


FIRST-PAGE = <integer 1..2147483647>



|





|


,SIZE = <integer 1..2147483647>



|


,DATA-SUPPORT = *SAME / [*PARAMETERS](...)



|




[*PARAMETERS](...)



|





|


DATA-DEVICE-TYPE = <device>



|





|


,DATA-VOLUME = list-poss(255): <alphanum-name 1..6>



|





|


,DATA-SPACE = *RELATIVE (...) / *ABSOLUTE(...)



|





|



*RELATIVE(...)



|





|




|


PRIMARY-ALLOCATION = <integer 1..2147483647>



|





|




|


,SECONDARY-ALLOCATION = *STD / <integer 0..32767>



|





|



*ABSOLUTE(...)



|





|




|


FIRST-PAGE = <integer 1..2147483647>



|





|




|


,SIZE = <integer 1..2147483647>


*TAPE(...)



|


VOLUME = *NO / [*ANY](...) / list-poss(255): <alphanum-name 1..6>



|




[*ANY](...)



|





|


NUMBER-OF-DEVICES = 1 / <integer 1..9>



|


,DEVICE-TYPE = *BY-VOLUME-CATALOG / <device>



|


,PREMOUNT-LIST = *NONE / list-poss(255): <integer 0..255>

,SUPPRESS-ERRORS = *NONE / *FILE-EXISTING

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
Guaranteed messages: DMS051B, DMS0681


64

DMS051C

User not authorized to access pubset
Guaranteed messages: DMS051C, DMS0681


64

DMS0533

Requested file not cataloged in pubset
Guaranteed message: DMS0533


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
Guaranteed message: DMS0683


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
Guaranteed messages: DMS053C


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).