Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

CATAL - Process catalog entry

Macro type: type S (E form/L form/D form/C form/M form); see "Macro types"

The CATAL macro creates or modifies catalog entries. It can be used to define attributes for file and data protection, to specify the coded character set and performance attributes, and to convert temporary files to permanent files and vice versa.

If attributes in existing catalog entries are to be modified, the operand STATE=*UPDATE must be specified. Only those file attributes, i.e. fields in the catalog entry, whose associated operands are specified with valid operand values are updated.

A catalog entry can be updated only if write access is not prevented by means of a password. Otherwise, the password must be entered in the password table of the job by means of the PASSWORD command (see the “Introductory Guide to DMS” [1]).

CATAL can be used to catalog files, file generations and file generation groups. The protection attributes for files and file generation groups can be modified; the protection attributes for file generations are defined by the related group entry.

The CATAL macro supports the “Default-Protection” function.

The encryption attributes of a file cannot be modified using the CATAL macro.

Temporary files

Since temporary files are job-specific, it is not possible to define file protection for them, i.e. the applicable default attributes cannot be modified. The following points must be noted when setting up a temporary file or if a permanent file is recataloged as a temporary file (or vice versa).

Nonprivileged users can only create temporary files on the default pubsets relating to their user IDs.

  • Setting up a temporary file:

    The temporary file is assigned the following values (explicit specification of other values is generally not permitted):

    EXPIRATION-DATE= <date>BACKUP-CLASS= *E
    USER-ACCESS= *OWNER-ONLYREAD-PASSWORD= *NONE
    WRITE-PASSWORD= *NONEEXEC-PASSWORD= *NONE
    BASIC-ACL= *NONEGUARDS= *NONE
    FREE-FOR-DELETION= *NONEACCESS= *WRITE
    MANAGEMENT-CLASS= *NONEAVAILABILITY= *STD
    NUM-OF-BACKUP-VERS= 0                            

    The attribute DISK-WRITE is set as default to *BY-CLOSE but may, however, be explicitly set to *IMMEDIATE. The attribute MIGRATE, which is set to the default value *INHIBITED, may also be set explicitly to *FORBIDDEN.

  • Recataloging from temporary to permanent:

    The permanent file is assigned the following values if no explicit entries are made:

    BACKUP-CLASS= value of the class 2 option BACKUP
    NUM-OF-BACKUP-VERS= value of the NUMBACK Class2 option
    DISK-WRITE= *IMMEDIATE
    MIGRATE                            *ALLOWED is set for the permanent file if MIGRATE=*INHIBITED was set for the temporary file (MIGRATE=*FORBIDDEN remains unchanged).

    The remaining attributes are taken over unchanged from the temporary file.

  • Recataloging from permanent to temporary:

    The temporary file is assigned the same values as when a temporary file is set up.The only difference is the value for MIGRATE:If MIGRATE=*ALLOWED was set for the permanent file, *INHIBITED is set for the temporary file (MIGRATE=*FORBIDDEN or *INHIBITED remains unchanged).
    Recataloging is rejected if the specified value for NUM-OF-BACKUP-VERS is > 0, irrespective of whether the permanent file is part of the version backup.
  • Renaming from temporary to permanent and vice versa is rejected in an SM pubset if simultaneous changing of the file attributes requires reallocation to another volume set (S0 migration).

  • Recataloging a work file or a file on a Net-Storage volume to a temporary file or vice versa is not allowed.

File generation groups (FGG)

The following points must be noted when creating or accessing file generation group catalog entries:

  • If the user wishes to work with a file generation group (FGG), he must create the group entry before he catalogs the first generation. In contrast to files and file generations, which can be cataloged by means of FILE, the group entry can be created at the program level only by means of the CATAL macro.

  • If the file generation group is indexed on public volumes (no VOLUME and/or DEVICE specification), the generations can be created on both public volumes and on tapes (FILE program interface).
    If the file generation group is indexed on a private disk (VOLUME/DEVICE specification), the generations can then also only be created on private disks (FILE program interface).

  • Files can be recataloged as file generations if the file generations do not already exist. A file on a Net-Storage volume cannot be renamed as a file generation. However, file generations cannot be recataloged as files.

  • The attributes (operands) STOCLAS, IOPERF, IOUSAGE, DISKWR and SOMIGR can be assigned or modified for the separate file generations of a file generation group.
    The entries of the user or system administration metainformation (USRINFO and ADMINFO operands) can be defined separately for the index of the file generation group and each individual file generation.
    The remaining attributes can only be defined for the complete file generation group. They are inherited automatically from the index by all cataloged generations.

  • The USER-ACCESS attribute must not be set to SPECIAL for file generation groups.

  • It is not possible or meaningful to assign execution rights for file generation groups since generations cannot be executed (/CALL-PROCEDURE or /START-PROGRAM is rejected).

  • The protection attributes READ-PASSWORD, WRITE-PASSWORD and EXPIRATION-DATE do not protect the index of a file generation group against new generations being created using CATAL. This means that new generations can be cataloged and, dependent on the selected OVERFLOW-OPTION, old generations deleted regardless of the protection attributes.

  • A new generation cannot be created in a generation group with the attribute
    ACCESS=READ using CATAL <generation name>,STATE=*NEW;
    CATAL <file><generation name>,STATE=*UPDATE must be used instead.

  • The protection attributes BASIC-ACL and GUARDS protect the file generation group (index) as well as each individual file generation. This means that a caller who does not posses write authorization cannot create a new file generation in a file generation group which is write-protected with these attributes.

  • File generation groups which are stored on private volumes and for which no catalog entries exist are called foreign file generation groups. If such FGGs are to be cataloged again, the group entry must first be created. For file generation groups on private disks, the operand STATE=*FOREIGN can be used for this purpose if the F1 label on the disk contains the group entry. The system then creates the catalog entry from the information in the F1 label of the private disk specified via the DEVICE and VOLUME operands. The associated file generations must then be imported (e.g. FILE macro, operand STATE=*FOREIGN).

  • If a file generation group whose generations are stored on a tape or private disk is to be imported, and if the F1 label of the disk does not contain the group entry, the operand FIRST and at least one of the operands BASE or LAST must be specified in the CATAL macro to enable reconstruction of the group entry.

  • When a file generation group is set up in the SM pubset, this must be defined as either a group of permanent generations or a working generation group (WORK-FILE attribute) by either implicitly assigning a default storage class or explicitly specifying the WORKGRP operand. It is not possible to subsequently change the attribute.
    If the generation concerned is assigned a storage class (during initial allocation via the FILE program interface) or the storage class is exchanged, the WORK-FILE attribute in the storage class must match the attribute of the group.

Files on tapes and tape cartridges

When creating or updating the catalog entries for tape files, some special features which result from the use of tapes must be observed.

  • Details of shareability (SHARE), access type (ACCESS) and passwords are transferred, for files with standard labels, from the catalog entry to the file labels when the file is created. For foreign files the details of the access rights are transferred from the file labels into the catalog entry when the file is opened.

  • Since file labels on a tape cannot be modified without destroying the file (this is a hardware restriction), and the contents of the catalog entry for a file must match the contents of the file labels, the access rights and the expiration date of a tape file cannot be modified by means of the CATAL macro once the file has been opened and closed correctly.

  • If the tape file was cataloged by means of a FILE macro, the file protection attributes can be modified by means of the CATAL macro before the file is opened for the first time. These attributes are then transferred without further checking to the file labels when the file is created. In this way, it is possible to define write protection (ACCESS=READ) for a file which is still to be created. The file can then be opened as an output file and created; the write-protection then becomes effective.
    Note

    If a tape file is cataloged using FILE, it is shareable unless SHARE=NO is set by means of a CATAL macro before it is opened for the first time.

  • If password protection is specified for a tape file, the label processing routines transfer the passwords to the HDR3 label from the catalog entry when the file is created, without checking them (the reverse applies when a file is imported, i.e. passwords are transferred from the HDR3 label into the catalog entry).
    The passwords are not checked for a file for which SECLEV=LOW is specified. If the system administrator selected password encryption when the system was generated, the encryption indicator in the HDR3 label is set to “1” when the file is opened.

  • If a file (FILE=...) is to be renamed (NEWNAME=...), the new name may only consist of the old name plus a version designation enclosed in parentheses. The version designation must differ from any other version designation that may already be present.
    This restriction results from the tape label processing: for hardware reasons, the separate blocks of a tape file cannot be overwritten and the file name in the label is compared with the file name in the catalog entry when the file is opened.

  • ACCESS types for tape files:

    • All OPEN modes are permitted with ACCESS=*WRITE.

    • Only the OPEN modes INPUT and REVERSE are permitted with ACCESS=*READ.

    • The access type is entered in the HDR1 label according to the entries in the ACCESS operand, as follows:
      ACCESS=*READ -> access type 1
      ACCESS=*WRITE -> access type 2

    • The ACCESS operand is used mainly for securing a file against destruction (ACCESS=*READ). Only the owner of a tape file can bypass checking of the access authorization by specifying SECLEV=LOW in the FCB macro.

  • Shareability (USER-ACCESS/SHARE) for tape files:

    • The access type is entered in the HDR1 label according to the entries in the SHARE operand, as follows:
      SHARE=*NO (USER-ACCESS=*OWNER-ONLY) -> access type 1
      SHARE=*YES (USER-ACCESS=*ALL-USERS) -> access type 2

    • USER-ACCESS=*ALL-USERS is assumed as default if the catalog entry was created with the FILE call.

  • DESTROY operand:
    If DESTROY=*YES was specified, the remaining part of the tape is deleted after the file is closed (CLOSE).

Using wildcard file names

  • If a wildcard file name (selection and/or construction specification) is to begin with an asterisk and contains no further wildcards, the leading asterisk must be entered twice. Otherwise, the request is rejected.
    Examples: '**A' and '*A/Z' are valid, '*ABC' and 'P(A)' are invalid.

  • If a wildcard file name (selection or construction) is to begin with two asterisks, these are handled with respect to the construction as a single asterisk.
    Example: a CATAL call with the parameters FILE='A.*.* and NEWNAME='**.OLD.*' renames an existing file 'A.TEST.1' to 'TEST.OLD.1'

  • The contents of the class 2 option TEMPFILE do not represent a partially qualified file name in this case (in contrast to FSTAT). '.*' can or must be used instead.

Note on SM pubsets

The following specifications are ignored for files/generations/FGGs on volume sets with permanent data storage if the file identifier in the SM pubset in question has a default storage class and physical allocation is forbidden:
AVAIL, DISKWR, IOPERF, IOUSAGE, S0MIGR=*ALLOWED, STOCLAS=*NONE.

Overview of the macro functions

Function

FGG
(Index)
PUB

FGG
(Index)
PRV

Gene-
ration
PUB

Gene-
ration
PRV

Gene-
ration
TAP

perm.
file
PUB

perm.
file
PRV

perm.
file
TAP

temp.
file
PUB

temp.
file
TAP

Operand

Identify catalog entry

x

x

x

x

x

x

x

x

x

x

pathname

Rename file or FGG

x

x




x

x

x

x

x

pathname2

Catalog entry
- create
- change
- import


x
x


x
x
x


x
x




x
x

x

x


x
x

x

STATE
=NEW
=UPDATE
=FOREIGN

Permit read or write access

x

x




x

x

x



ACCESS

Access control withBASIC-ACL

x





x





BASACL

x
x
x





x
x
x
x





OWNERAR
READ
WRITE
EXEC

x
x
x





x
x
x
x





GROUPAR
READ
WRITE
EXEC

x
x
x





x
x
x
x





OTHERAR
READ
WRITE
EXEC

Access control with GUARDS

x
x
x





x
x
x
x





GUARDS
READ
WRITE
EXEC

Transfer of protection attributes

x

x




x

x

x

x

x

PROTECT

Shareability

x

x




x

x

x



SHARE

Password protection:
- write
- read
- execute


x
x


x
x





x
x
x


x
x
x


x
x
x




WRPASS
RDPASS
EXPASS

Expiration date
(retention period)

x

x




x

x




EXDATE
(RETPD)

Release for deleting

x

x




x

x




DELDATE

Automatic data destruction

x

x




x

x

x

x

x

DESTROY

Audit monitoring

x

x




x

x

x



AUDIT

Frequency of ARCHIVE backups

x

x




x

x




BACKUP

Scope of ARCHIVE backups

x

x




x

x




LARGE

HSMS migration permitted/not permitted

x

x




x

x

x



MIGRATE

Maximum number of file versions to be saved in the version backup archive






x





NUM_OF_BACKUP_VERS

SM pubset migration permitted/not permitted



x



x



x


S0MIGR

Availability



x



x





AVAIL

HSMS management class

x





x





MANCLAS

Storage class



x



x





STOCLAS

Enable/disable character set

x





x


x

x

x

CCS

Assign character set for node file on Net-Storage






x





NETCCS

Define performance attributes



x



x



x


IOPERF

Performance required for I/O operations



x



x



x


IOUSAGE

Suitability for processing in cache (DAB)



x



x





DISKWR

User metainformation

x


x



x



x


USRINFO

System administration metainformation

x


x



x



x


ADMINFO

Define FGG:
Oldest generation
First generation
Base generation
Overflow handling
Define volume
- volume
- device
Work group


x
x
x
x
x


x


x
x
x
x
x
x
x










GEN
FIRST
LAST
BASE
DISP
VOLUME
DEVICE
WORK

Key

PUB :

public volume

PRV :

private volume (private disk)

TAP :

tape

x:

the attribute can be set or modified with CATAL

Format

Operation

Operands

CATAL

VERSION = 1 / 2 / 3 / 4

,MF = C / D / E / L / M

,PARAM = <name 1..8>

,PREFIX = I/ <pre>

,MACID = DK/ <macid>

,ACCESS = *WRITE / *READ / *UNCHANGED

,ADMINFO = *NONE / <c-string 1..8> / (<reg: A(char:8)>) /
           <var: char:8>

,AUDIT = *NONE / *FAILURE / *SUCCESS / *ALL

,AVAIL = *STD / *HIGH

,BACKUP = *A / *B / *C / *D / *E

,BASACL = *NONE / *STD / *UNCHANGED

,BASE = <integer -99..9999> / (<reg: int:2>) / <var: int:2>

,CCS = *NONE / *STD / <c-string 1..8> / (<reg: A(char:8)>) /
       <var: char:8>

,CHECK = *NO / *MULTIPLE / *ERROR / *SINGLE / *CATALOG / *USERID

,DELDATE = *NONE / *UNCHANGED / <c-string 1..10> /
         (<reg: A(char:10)>) / <var: char:10> /
         [(<c-string 8..8> / (<reg: A(char:8)>) / <var: char:8>)]

,DESTROY = *NO / *YES / *UNCHANGED

,DEVICE = <c-string: device> / (<reg: A(char:8)>) / <var: char:8>

,DISKWR = *IMMEDIATE / *BY-CLOSE

,DISP = *CYCLE / *REUSE / *DELETE / *KEEP

,EXDATE = *UNCHANGED /
        <c-string 1..10> / (<reg: A(char:10)>) / <var: char:10>
       [(<c-string 8..8> / (<reg: A(char:8)>) / <var: char:8>)]

,EXPASS = *NONE / *UNCHANGED / <c-string 1..4> / <x-string 1..8>/
              <integer -2147483648..2147483647>
          (<reg: A(char:4)>) / <var: char:4>

,FILE = <c-string 1..80: filename 1..54 with-wild(80)> /
       (<reg: A(char:80)>) / <var: char:80>

,FIRST = <integer 1..9999> / (<reg: int:2>) / <var: int:2>

,GEN = <integer 0..255> / (<reg: int:2>) / <var: int:2>

,GROUPAR = *NO-ACCESS / (
           [READ = *NO / READ = *YES / R = *N / R = *Y]
           [,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
           [,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )

,GUARDS = *NONE / (
          [ READ = *NONE /
                    <c-string: filename 1..18 without cat-gen-vers>/
                    <var: char:18> / (<reg: A(char:18)>) ]
          [ ,WRITE = *NONE /
                    <c-string: filename 1..18 without cat-gen-vers>/
                    <var: char:18> / (<reg: A(char:18)>) ]
          [ ,EXEC = *NONE /
                    <c-string: filename 1..18 without cat-gen-vers>/
                    <var: char:18> / (<reg: A(char:18)>) ] ) /
         *UNCHANGED

,IOPERF = *STD / *HIGH / *VERY-HIGH / *USER-MAX

,IOUSAGE = *READ-WRITE / *WRITE / *READ

,LARGE = *NO / *YES

,LAST = <integer 1..9999> / (<reg: int:2>) / <var: int:2>

,LIST = *NO / *SYSOUT / *ERRORS-TO-SYSOUT

,MANCLAS = *NONE / <c-string: struct-name 1..8> /
           (<reg: A(char:8)>) / <var: char:8>

,MIGRATE = *ALLOWED / *INHIBITED / *FORBIDDEN

,NETCCS = *USER_DEF / *ISO / *NO-CONV / <c-string 1..8> /
          (<reg: A(char:8)>) / <var: char:8>

,NEWNAME = c-string 1..80: filename 1..54 with-constr-wild(80)> /
           (<reg: A(char:80)>) / <var: char:80>

,NUM_OF_BACKUP_VERS = <integer 0..32> /
           (<reg: A(int:1)>) / <var: int:1>

,OPNBACK = *NO / *YES

,OTHERAR = *NO-ACCESS / (
           [READ = *NO / READ = *YES / R = *N / R = *Y]
           [,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
           [,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )

,OWNERAR = *NO-ACCESS / (
           [READ = *NO / READ = *YES / R = *N / R = *Y]
           [,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
            [,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )

,PROTECT = *STD / *BY_DEF_PROT_OR_STD /
           (*FROM_FILE,<c-string: filename 1..54>) /
           (*FROM_FILE,(<reg: A(char:54)>)) /
            (*FROM_FILE,<var: char:54>)

,RDPASS = *NONE / *UNCHANGED / <c-string 1..4> /
          <x-string 1..8> / <integer -2147483648..2147483647>
          (<reg: A(char:4)>) / <var: char:4>

,RELSPAC = *ALLOWED / *IGNORED / *UNCHANGED

,RETPD = <integer 0..32767> / (<reg: int:2>) / <var: int:2>

,S0MIGR = *ALLOWED / *FORBIDDEN

,SHARE = *NO / *YES / *SPECIAL / *UNCHANGED

,STATE = *NEW / *UPDATE / *FOREIGN

,STOCLAS = *STD / *NONE / *UPDATE / <c-string: struct-name 1..8>/
           (<reg: A(char:8)>) / <var: char:8>

,TIMBASE = *UTC / *LTI

,USRINFO = *NONE / <c-string 1..8> / (<reg: A(char:8)>) /
           <var: char:8>

,VOLUME = <c-string: vsn 1..6> / (<reg: A(char:6)>) /
          <var: char:6>

,WORKGRP = *YES

,WRPASS = *NONE / *UNCHANGED / <c-string 1..4> /
          <x-string 1..8> / <integer -2147483648..2147483647>
            (<reg: A(char:4)>) / <var: char:4>

Operand descriptions

ACCESS

The ACCESS operand can be used to protect a file against overwriting. It specifies whether write/read or only read access is permitted for the file or file generation. This protection attribute is only relevant if no BASIC-ACL or GUARDS protection is activated.

Tape files:
when the file is opened for the first time, DMS places the ACCESS indicator in its HDR3 label. For subsequent accesses, the file owner can bypass access type checking by specifying SECLEV=LOW (see FCB - Define file control block, section "SECLEV" and FILE - Define file attributes, section "SECLEV").

Default setting (only in conjunction with STATE=*NEW): ACCESS=*WRITE

= *WRITE
All access types are permitted for the file or file generations.
Tape files, HDR3 label: access type = 0.

= *READ
Only read access is permitted for the file or the file generations, i.e. only the OPEN modes INPUT and REVERSE are permitted.
Temporary files: write access cannot be prevented; ACCESS=READ is rejected.
Tape files, HDR3 label: access type = 1.

= *UNCHANGED
Only relevant if PROTECT is specified:
If STATE=*UPDATE is specified at the same time, the value of ACCESS remains unchanged. If STATE=*NEW is specified at the same time, the value ACCESS=*WRITE is entered.

Specification of *UNCHANGED has the following effects:

      • if PROTECT=*FROM-FILE is specified: the value *UNCHANGED prevents the corresponding value from being taken over from the reference file

      • if PROTECT=*BY_DEF_PROT_OR_STD is specified and if STATE=*NEW is specified without a value for PROTECT:
        the value *UNCHANGED prevents the corresponding value supplied by default protection from being taken over

      • if PROTECT=*STD and STATE=*UPDATE are specified together: the value *UNCHANGED prevents the value in the catalog entry from being reset to the value ACCESS=*WRITE

If STATE=*UPDATE is specified, then: if PROTECT is not specified, *UNCHANGED has the same effect as no specification.

If STATE=*NEW is specified, then: *UNCHANGED has the same effect as ACCESS=*WRITE (irrespective of what is specified for PROTECT). 

ADMINFO

Reserved for system administrators (called under the TSOS ID):
Enters system administration metainformation into the file catalog entry. The entry can have a maximum of 8 bytes, with any contents; the system administrator defines the meaning.The operand is ignored for files on private volumes.

= *NONE
The entry is deleted.

= <c-string 1..8>
The specified characters are entered.

= (<reg: A(char:8)>)
Only possible with MF=M:
The specified register contains the address of an 8-byte memory area containing the metainformation to be entered.

= <var: char:8>
Only possible with MF=M:
Symbolic address of an 8-byte memory area containing the metainformation to be entered.

AUDIT

Reserved for user IDs with AUDIT=YES rights:
Defines whether DMS accesses to files or file generations are to be monitored with the aid of system exit routines. Monitoring applies to the operations CATAL, FILE, OPEN and ERASE.
If the user does not have the authorization AUDIT=YES, a CATAL macro specifying AUDIT will be rejected.

Default setting (only in conjunction with STATE=*NEW): AUDIT=*NONE

= *NONE
No monitoring.

= *All
All DMS operations for the file/generation are monitored.

= *SUCC
All successful DMS operations for the file/generation are monitored.

= *FAIL
All unsuccessful DMS operations for the file/generation are monitored. 

AVAIL

Only relevant with STATE=*UPDATE for files on public volumes or on a Net-Storage volume:
The file availability requirements are modified. Files that are to have an increased availability are reallocated to an appropriate volume set (e.g. DRV – Dual Recording by Volume).
An existing storage class entry in the SM pubset file catalog entry is removed by specifying the operand.

The operand must not be specified simultaneously with the STOCLASnot equal to *NONE operand.

The operand is ignored for files and generations on volume sets with permanent data storage if the file identifier on the SM pubset concerned has a default storage class and physical allocation is forbidden.

= *STD
No special availability requirements are set.

= *HIGH
The file is to have increased availability. It is ensured that the file is allocated to a corresponding volume set. If the current storage location does not provide the requirements of increased availability, the request is rejected for SF pubsets. The request is only rejected in an SM pubset if no suitable volume set is available or if the permitted user ID allocations are exceeded. Otherwise, the storage space is reallocated to a suitable volume set.

If the file is stored on a private volume, if it is a work file, or if it has been migrated to a background level, the request is rejected with a return code. The request is also rejected for temporary files, even if a temporary file is renamed to a permanent file. In this case, the file must be renamed first and then increased availability can be assigned with an additional CATAL call.

Files in SM pubsets:
If the current storage location (volume set) does not provide the requirements of high availability and a suitable volume set is in the SM pubset, the data or storage space is automatically reallocated. The file is locked (opened) during this reallocation, i.e. all accesses to the file or its catalog entry are rejected instead of being put into a wait state. 

BACKUP

Valid only for files or FGGs on disks:
controls automatic file backup with the archiving system ARCHIVE or HSMS; specifies in which backup runs the files or the generations of the FGG are to be saved.

Default setting:

for permanent files:
for temporary files:

according to class 2 option BACKUP
BACKUP=*E

= *A 
The files/generations are to be saved in each backup run.

= *B
The files/generations are to be saved when a backup run occurs for files with BACKUP=*B, *C or *D.

= *C
The files/generations are to be saved in backup runs with BACKUP=*C or *D.

= *D
The files/generations are to be saved only in backup runs with BACKUP=*D.

= *E
No automatic backup via ARCHIVE. 

BASACL

Activates or deactivates access control via the BASIC-ACL with standard access rights. Protection is only effective if no GUARDS protection is activated.

The operand must not be specified together with the OWNERAR, GROUPAR or OTHERAR operand.

Default setting (only in conjunction with STATE=*NEW): BASACL=*NONE

= *NONE
Deactivates access control via BASIC-ACL:

= *STD
Enters the following standard access control rights in the basic ACL:

      • If STATE=*NEW is specified or if no STATE value is specified, the following access rights are entered:

        OWNER
        R W X
        GROUP
        - - -
        OTHERS
        - - -

        This corresponds to the following operand entries:
        OWNERAR=(READ=*YES,WRITE=*YES,EXEC=*YES),GROUPAR=*NO-ACCESS,OTHERAR=*NO-ACCESS.

      • If STATE=*UPDATE is specified (i.e. if the file involved is already cataloged), the valid values for SHARE and ACCESS are converted to BASIC-ACL values if access control via the basic access control list was not activated before. 

        The values are converted in accordance with the following table:

        SHAREACCESSOWNERGROUPOTHERS
        NOREADR - X- - -- - -
        NOWRITER W X- - -- - -
        YES / SPECIALREADR - XR - XR - X
        YES / SPECIALWRITER W XR W XR W X

        Notes

        If the operands SHARE, ACCESS and/or PROTECT are specified together with BASACL=*STD, conversion is carried out according to these entries.
        Nothing (no access) is entered for EXEC with file generation groups.

= *UNCHANGED
Only relevant in conjunction with specification of PROTECT:
If STATE=*UPDATE is specified at the same time, the value of BASIC-ACL remains unchanged. If STATE=*NEW is specified at the same time, no BASIC-ACL is entered.

Specification of *UNCHANGED has the following effects:

    • if PROTECT=*FROM-FILE is specified:the value *UNCHANGED prevents the corresponding value from being taken over from the reference file

    • if PROTECT=*BY_DEF_PROT_OR_STD is specified and if STATE=*NEW is specified without a value for PROTECT:
      the value *UNCHANGED prevents the corresponding value supplied by default protection from being taken over

    • if PROTECT=*STD and STATE=*UPDATE are specified at the same time:the value *UNCHANGED prevents the value in the catalog entry from being reset (no BASIC-ACL)

If STATE=*UPDATE is specified, then: if PROTECT is not specified, *UNCHANGED has the same effect as no specification.

If STATE=*NEW is specified, then: *UNCHANGED has the same effect as no BASIC-ACL in the catalog entry (irrespective of what is specified for PROTECT). 

BASE

For file generation groups only:
defines a reference point (a base generation) to which all relative generation numbers are related and also enables the reconstruction of an index for file generations on private volumes.
If the BASE operand is not specified when creating an FGG (group index), it is assigned the value of the FIRST operand if that operand is specified; otherwise, it is assigned the value 0.

Use of the BASE operand for index reconstruction:
If generations of an FGG are to be imported from a private disk, and if the group entry is neither in the catalog nor in the F1 label of the disk, the group index must first be reconstructed. A CATAL call with the operands STATE=*NEW, GEN=<num>, FIRST=<num>, and at least one of the operands BASE or LAST must be executed for this purpose. If only the BASE operand is specified, it also defines the most recent file generation, i.e. the value for LAST.

= <integer -99..9999>
The new base generation can be defined in relation to the specified “number” in absolute or relative form.

Absolute form: value range: 1 <= number <= 9999.

      • STATE=*UPDATE: “number” is assigned as the new base value; it must designate an existing generation according to the index entry.

      • STATE=*NEW: “number” is added to the catalog as the base value.If BASE is specified in conjunction with FIRST and/or LAST, the specified number must fulfill the following condition: FIRST <= number <= LAST.

Relative form:

      • Only possible with STATE=*UPDATE:
        value range: -99 <= number <= 0.
        Defines the base generation relative to the most recently cataloged generation (catalog field LAST-GEN) according to the index.
        The new base value must designate an existing file generation in accordance with the index, i.e. it must be >= the value in the output field FIRST-GEN.

= (<reg: int:2>)
Only possible with MF=M:
The base value (see above for value range and meaning) is stored in the lower half-word of the specified register.

= <var: int:2>
Only possible with MF=M:
Symbolic address of a half-word in which the base value is stored (see above for value range and meaning). 

CCS

Only valid for files/FGGs on public volumes, for files on Net-Storage and for tape files:
Character set to be used for the file.
The coded character set (CCS) defines how the characters of a national character set are to be stored in binary form. The specified character set has an effect on the representation of characters on the screen, the collating sequence, etc. (see the “XHCS” manual [22]).

The operand is ignored for files on private volumes; as a result, no return code is supplied.

Default setting (only in conjunction with STATE=*NEW): CCS=*NONE

= *NONE
No character set is to be specified for the file.

= *STD
The character set is taken over from the file owner’s user catalog entry provided a character set which is not EDF03IRV is entered. Otherwise *NONE applies.

= <c-string 1..8>
Name of the coded character set with which the file is to be processed (e.g.: EDF03IRV for the international version of EBCDIC.DF.03 ).
The specified string is not checked, in particular not whether it is the name of a defined coded character set.

= (<reg: A(char:8)>)
Only possible with MF=M:
The specified register contains the address of an 8-byte memory area containing the name of the coded character set.

= <var: char:8>
Only possible with MF=M:
Symbolic address of an 8-byte memory area containing the name of the coded character set.

CHECK

Defines the conditions under which a user dialog is to be started.

When the dialog is started, the user can decide whether the displayed files are processed or not. He can also call up help text on the reply options and define a new value for LIST and/or CHECK when processing is resumed.

The value *NO always applies in batch mode.

Default:

CHECK=*NO

= *NO
All selected files are processed without a check dialog, i.e. the user cannot intervene.

= *MULTIPLE
A check dialog is only started if more than one file is selected.If the catalog and/or user ID contain wildcards, a check dialog is executed for each catalog and/or user ID.
CHECK=*ERROR is also implied.

= *ERROR
An error check dialog is started if an error occurs while a selected file name is being processed. A file set check dialog is started if the selection entry selects more files than can be processed in available memory. CHECK=*ERROR is also always implied for CHECK not equal to *NO.

= *SINGLE
A check dialog is executed for each selected file name. CHECK=*ERROR is also implied.

= *CATALOG
The user must decide in a check dialog for each catalog whether the files selected on it are to be processed.
CHECK=*ERROR is also implied.

= *USERID
Reserved for system administrators.
The system administrator must decide in a check dialog for each user ID on each catalog whether the selected files are to be processed.CHECK=*ERROR is also implied. 

DELDATE

Only for files on public volumes and for files on Net-Storage:
Determines the time after which the file may be deleted regardless of the protection attributes ACCESS, BASACL, EXDATE, GUARDS, RDPASS, WRPASS and EXPASS or after which its storage place may be released.

An absolute date is interpreted according to the TIMEBASE operand, either based on local time (LTI) or the universal time coordinate (UTC), while a relative date is always based on local time.

= *NONE
The file should not be deleted without taking the protection attribute into account (corresponds to DELDATE='+0').

= *UNCHANGED
If STATE=*UPDATE is specified at the same time, the value of DELDATE remains unchanged. If STATE=*NEW is specified at the same time, the value DELDATE=*NONE is entered.

If STATE=*UPDATE is specified, then: if PROTECT=*BY_DEF_PROT_OR_STD is specified, the value *UNCHANGED prevents the transfer of the corresponding value supplied by the default protection function; otherwise *UNCHANGED has the same effect as no specification.

If STATE=*NEW is specified, then: *UNCHANGED has the same effect as the specification *NONE (irrespective of what is specified for PROTECT).

= <c-string 1..10> / (<reg: A(char:10)>) / <var: char:10>
[<c-string 8..8> / (<reg: A(char:8)>) / <var: char:8>]
Defines the time from which the file may be deleted regardless of the protection attributes, where the variable “...10” stands for the date and “...8” for the time.

The following formats are allowed:

  • '+<integer 0..99999>'[('<time 8..8>')]

  • '<date 8..10>'[('<time 8..8>')]

  • 'yymmdd'[('<time 8..8>')]

It is imperative that the '+' is specified for relative date entries to discriminate them from absolute ones.

Date entries of less than 10 characters must be terminated with blanks.

Two-digit year specifications from 00 to 59 are complemented with 20, from 60 to 99 with 19.

Examples


          ...
          LA    7,DELTIME
BEISP1    CATAL MF=M,VERSION=4,...,DELDATE='+1'((7))
          LA    6,DELDATE
BEISP2    CATAL MF=M,VERSION=4,...,DELDATE=(6)(DELTIME)
BEISP3    CATAL MF=M,VERSION=4,...,DELDATE=DELDATE('00:00:00')
          ...
DELDATE   DC    CL10'2016-11-11'    11.11.2016
DELTIME   DC    CL8'11:11'          11:11:00

DESTROY

In order to improve data protection, the user can specify in the catalog entry that data which is no longer needed is to be overwritten with X'00' (binary zeros). For disk files, this applies to erase operations (see the ERASE command); for tape files, it applies to the overwriting of data remaining on the tape during EOF or EOV processing (see the DESTOC operand of the FILE macro, "FILE - Define file attributes / control file processing").

Default setting (only in conjunction with STATE=*NEW): DESTROY=*NO

= NO
Disk files:
The storage space is simply released unless the operand DESTROY=*YES is specified in the ERASE macro.

Tape files:
Any further data on the tape is not overwritten unless the operand DESTOC=YES is specified in the FILE macro for the current processing run.

= YES
Disk files:
The storage space which is released is automatically overwritten with binary zeros (X'00').

Tape files:
Any data remaining on the tape is erased; this can also be done using the FILE macro for the current processing run by specifying the operand DESTOC=YES.

= *UNCHANGED
Only relevant in conjunction with specification of PROTECT:
If STATE=*UPDATE is specified at the same time, the value of DESTROY remains unchanged. If STATE=*NEW is specified at the same time, the value DESTROY=*NO is entered.

Specification of *UNCHANGED has the following effects:

      • if PROTECT=*FROM-FILE is specified:
        prevents the corresponding value from being taken over from the reference file

      • if PROTECT=*BY_DEF_PROT_OR_STD is specified and if STATE=*NEW is specified without a value for PROTECT:
        prevents the corresponding value supplied by default protection from being taken over

      • if PROTECT=*STD and STATE=*UPDATE are specified at the same time:
        prevents the value in the catalog entry from being reset to the value DESTROY=*NO

If STATE=*UPDATE is specified, then: if PROTECT is not specified, *UNCHANGED has the same effect as no specification.

If STATE=*NEW is specified, then: *UNCHANGED has the same effect as DESTROY=*NO (irrespective of what is specified for PROTECT). 

DEVICE

Only for file generation groups on private disks and in conjunction with the VOLUME operand:
Specifies the device type on which the file generation group is to be stored or the device type from which it is to be imported (see also the DEVICE operand of the FILE macro).

DEVICE does not have to be specified if MAREN is available.

= <c-string: device>
Device type: permissible entries are listed in the device table in „System installation“ manual [16].
Every disk device type specification is handled like the STDDISK specification.

= (<reg: A(char:8)>)
Only possible with MF=M:
The specified register contains the address of an 8-byte memory area containing the device type.

= <var: char:8>
Only possible with MF=M:
Symbolic address of an 8-byte memory area containing the device type.

DISKWR

Only for files and file generations on public volumes and files on Net-Storage volumes:
Specifies the time at which data consistency is required after a write operation.If the file is processed via a temporary cache for writing, data in the file will not be in a consistent state until CLOSE processing has been completed. This means that system errors during the processing phase could lead to inconsistencies. Immediate data consistency after each write operation should therefore be requested for files which contain important data.

Default setting:

DISKWR=*IMMEDIATE

for permanent files

DISKWR=*BY-CLOSE

for temporary files

If DISKWR is not specified when recataloging from temporary to permanent or vice versa, the entry is set automatically to the respective default/permitted value.

The operand is ignored (no return code!) if:

  • it is specified for files which are not located on a public volume or which are to be created.

  • the file identifier on the SM pubset concerned has a default storage class and physical allocation is forbidden.

A storage class entered in the file catalog entry in an SM pubset is removed if this operand is specified. The operand must not be specified simultaneously with the operand STOCLASnot equal to *NONE.

= *IMMEDIATE
Data contained in the file must be in a consistent state immediately after a write operation, so a volatile write cache should not be used when processing the file (default value for permanent files).
This entry is ignored for temporary files.

= *BY-CLOSE
Data in the file need not be in a consistent state (i.e. written to disk) until CLOSE processing has been completed. This is the default value for temporary files. 

DISP

Only for file generation groups:
Specifies whether the oldest generations are to be erased and, possibly, their storage space reused when the maximum number of simultaneously existing generations specified via GEN= is exceeded. In the case of generations on tape, only the catalog entry is deleted.Existing expiration dates for the oldest generations, if any, are ignored.

Default setting (only in conjunction with STATE=*NEW): DISP=*CYCLE

= *CYCLE
The oldest existing generation is erased and its storage space on disk or the tapes it occupies is/are released. The fields LAST-GEN and FIRST-GEN in the group entry (youngest and oldest existing generations) are updated accordingly. 

= *REUSE
The effects of DISP=*REUSE depend on the type of volume:

For FGGs on public disks:
The oldest generation is erased, its storage space is returned to the system, and the group entry is updated (see DISP=*CYCLE).

For FGGs on private disks:
The new generation is created, the oldest generation is erased, and the volume of the oldest generation is used for storing the new generation. If the generation which was deleted extended over several volumes, the new generation is cataloged only on the first of these volumes. The catalog entry is updated accordingly. Since the old generation is erased only after the new generation has been created, insufficient space on the volume can mean that the new generation cannot be created although DISP=*REUSE is specified.

For FGGs on tape:
The oldest generation is deleted from the catalog and the new generation is created on the tapes which become free. The group entry is updated accordingly. DISP=*REUSE must not be specified for FGGs in MF/MV sets.

= *DELETE
All generations of the FGG are erased and the new generation becomes the oldest generation of a new series. The group entry is updated accordingly.

= *KEEP
The “superfluous” oldest generations are not erased automatically, but only when the user, in a further CATAL macro with the operands FIRST and BASE, defines a new “oldest” and a new base generation, or when the user specifies a new value for DISP=. As each new generation is created, only the field LAST-GEN in the group entry is updated. 

EXDATE

Specifies the period (EXPIRATION-DATE) during which the file cannot be modified or deleted, i.e. when it is only available for read access (“read only”).

An expiration date can only be set for existing files, i.e. the catalog fields CRE-DATE and FILE-STRUC must have a value not equal to NONE. This also means that the CATAL operands EXDATE and STATE=*NEW or STATE=*FOREIGN cannot be combined (EXDATE is ignored).

An absolute date is interpreted according to the TIMEBASE operand, either based on local time (LTI) or the universal time coordinate (UTC), and a relative date is always based on local time.

A time of 00:00:00 is always assumed in conjunction with TIMBASE=*LTI or a relative time entry. An explicit time specification is only accepted in conjunction with TIMBASE=*UTC. The minutes and seconds are, however, always set to zero.

Note

If the specified expiration date is earlier than the current date, it is not entered. Instead the current date is entered with 0.00 hours local time. 

Simultaneous use of the EXDATE and RETPD operands is not permitted.

= <c-string 1..10> / (<reg: A(char:10)>) / <var: char:10>
[(<c-string 8..8> / (<reg: A(char:8)>) / <var: char:8>)]
Defines the time from which the file may be modified, where the variable “...10” stands for the date and “...8” for the time.

The following formats are permitted:

      • '+<integer 0..99999>'

      • '<date 8..10>'[('<time 8..8>')]

      • 'yymmdd'[('<time 8..8>')]

It is imperative that the '+' is specified for relative date entries to distinguish them from absolute ones.

Date entries of less than 10 characters must be terminated with blanks.

Two-digit year specifications from 00 to 59 are complemented with 20, from 60 to 99 with 19.

Examples


          ...
          LA    6,EXPDATE
          LA    7,EXPTIME
BEISP1    CATAL MF=M,VERSION=4,...,EXDATE=(6)((7))
BEISP2    CATAL MF=M,VERSION=4,...,EXDATE=(6)('23:00:00')
BEISP3    CATAL MF=M,VERSION=4,...,EXDATE=EXPDATE(EXPTIME)
          ...
EXPDATE   DC    CL10'161231'        31.12.2016
EXPTIME   DC    CL8'00:00:00'       00:00:00


= *UNCHANGED
Only relevant in conjunction with specification of PROTECT:
If STATE=*UPDATE is specified at the same time, the value of EXDATE remains unchanged.

The value *UNCHANGED has the following effects for permanent files with a creation date and for file generation groups with a cataloged group entry:

      • if PROTECT=*FROM-FILE is specified:
        prevents the corresponding value from being taken over from the reference file

      • if PROTECT=*BY_DEF_PROT_OR_STD is specified:
        prevents the corresponding value supplied by default protection from being taken over

      • if PROTECT=*STD is specified:
        prevents the value in the catalog entry from being reset to the current date

If STATE=*UPDATE is specified, then: if PROTECT is not specified, *UNCHANGED has the same effect as no specification. 

EXPASS

Only for files; not for FGGs or file generations:
This operand is used to define or delete the execute password. Execute protection is provided for the call of a program or a procedure file by means of the command START-PROGRAM, LOAD-PROGRAM, CALL-PROCEDURE or ENTER-PROCEDURE.

Tape files:
The password protection is recorded in the HDR3 label.

Encrypted files:
All EXPASS specifications are handled like *UNCHANGED.

Default setting (only in conjunction with STATE=*NEW:) EXPASS=*NONE

= *NONE
No execute password is defined or an existing password is deleted.

= *UNCHANGED
If STATE=*UPDATE is specified at the same time, the value of EXPASS remains unchanged. If STATE=*NEW is specified at the same time, the value EXPASS=*NONE is entered.
If PROTECT=*BY_DEF_PROT_OR_STD or STATE=*NEW is specified without a value for PROTECT, *UNCHANGED prevents the corresponding value supplied by default protection from being taken over.
If STATE=*UPDATE is specified, then: if PROTECT=*BY_DEF_PROT_OR_STD is not specified, *UNCHANGED has the same effect as no specification.
If STATE=*NEW is specified, then: *UNCHANGED has the same effect as the specification *NONE (irrespective of what is specified for PROTECT).

= <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483647>
Defines a password required for calling the program or procedure.

The specification EXPASS=X'00000000' is treated in the same way as *NONE.

Before writing to the file, “password” must be entered in the password table of the job by means of the ADD-PASSWORD command (see the corresponding description in the “Commands” [3] manual).
If password assignment is logged, the passwords are not shown in plaintext. 

= (<reg: A(char:4)>)
Only possible with MF=M:
The specified register contains the address of a 4-byte memory area containing the execution password.

= <var: char:4>
Only possible with MF=M:
Symbolic address of a 4-byte memory area containing the execution password.

FILE

Path name of the file, file generation or file generation group catalog entry which is referenced by the entries of the remaining macro operands.

    • With STATE=*NEW (default), a catalog entry is created under the specified name.

    • With STATE=*FOREIGN, a file generation group catalog entry is imported which exists on the private volume specified with the VOLUME and DEVICE operands.

    • With STATE=*UPDATE, a catalog entry can be modified which exists under the specified path name. If wildcards are specified, all catalog entries selected can be modified.

= <c-string 1..80: filename 1..54 with-wild(80)>
The path name consists of [:catid1:][$userid1.]<filename1>.

catid 1
ID of the catalog which contains or is to contain the file catalog entry. Wildcards may be used if STATE=*UPDATE is specified. However, only those files in the catalog are then selected that are locally available.
The default catalog ID of the caller (DEFAULT-PUBSET) is assumed if no catalog ID is specified.

userid 1
User ID under which the file is stored or is to be created. Only the system administrator may also specify wildcards with STATE=*UPDATE.

      • The logon ID is assumed if no user ID is specified.

      • The system administrator may specify a foreign user ID if no TSOS restriction has been declared for the file (see the “SECOS” manual [8]) or if STATE=*UPDATE is not specified.

      • Nonprivileged users may specify a foreign user ID if they are co-owners of the file.

filename 1
Name of the temporary or permanent file, the file generation or file generation group.
The file may contain wildcards or be partially qualified (i.e. end with a period) if STATE=*UPDATE is specified. 

= (<reg: A(char:80)>)
Only possible with MF=M:
The specified register contains the address of an 80-byte memory area containing the path name. If the path name is shorter than the maximum length of 80 bytes, it must be terminated with at least one blank (X'40').

= <var: char:80>
Only possible with MF=M:
Symbolic address of an 80-byte memory area containing the path name. If the path name is shorter than the maximum length of 80 bytes, it must be terminated with at least one blank (X'40'). 

FIRST = num

Only for file generation groups:
This operand may only be specified with STATE=*NEW.
It defines the absolute generation number of the oldest cataloged file generation. It is needed in order to reconstruct the index entry of a file generation group on private volumes (foreign file generation group) and should be used only for this purpose. The FIRST operand specifies the number of the oldest file generation to be imported.
File generations stored on tape must be cataloged individually using FILE (operand STATE=FOREIGN).
Generations stored on private disk can be imported by using IMPORT or individually by means of FILE (operand STATE=FOREIGN).

= <integer 1..9999>
The file generation specified by FIRST can only be imported, not recataloged. This means that if the created index entry is not to be used for the reconstruction of a file generation group, there is no way of actually creating the file generation group specified here (or any other file generations <= LAST or <= BASE; see also the description of those operands).

= (<reg: int:2>)
Only possible with MF=M:
The specified register contains the generation number of the oldest cataloged file generation in the lower half-word.

= <var: char:2>
Only possible with MF=M:
Symbolic address of a half-word containing the generation number of the oldest cataloged file generation.

GEN = num

Only for file generation groups:
Specifies how many generations of a file generation group may be cataloged concurrently (see also the DISP operand).

GEN may be specified for a new (STATE=*NEW) or an existing file generation group (STATE=*UPDATE).

Default value: GEN = 0

= <integer 0..255>
Maximum number of concurrently cataloged file generations.If GEN=0 is specified together with STATE=*NEW, a “normal” file rather than a file generation group is created; if it is specified together with STATE=*UPDATE, GEN=0 is ignored.

= (<reg: int:2>)
Only possible with MF=M:
The specified register contains the maximum number of concurrently cataloged file generations in the lower half-word.

= <var: char:2>
Only possible with MF=M:
Symbolic address of a half-word containing the maximum number of concurrently cataloged file generations. 

GROUPAR

Only for files on public volumes and on Net-Storage:
Activates access control via the BASIC-ACL and specifies how a user who is not the file owner but who belongs to the same user group as the file owner may access the file when no GUARDS protection is active.
User groups can be defined in a system only if the software product SECOS is installed (see the “SECOS” manual [8]). In a system without user groups and in which SECOS has not been installed, the value for GROUPAR applies to all users except the file owner (and the system administrator). When user groups are defined in the system, this value is evaluated for the members of the file owner's user group.

The operand must not be specified together with the BASACL operand.

= *NO-ACCESS
No access to the file is permitted for the user group.

= ( [READ = *NO / READ = *YES / R = *N / R = *Y]
[,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
[,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )
The access types for which *YES or *Y is specified in the list are permitted. The parentheses are component parts of the access list and must be specified.

The various elements of the access list have the following meanings:


READ=NO or R=N

Read access is forbidden (default value).

READ=YES or R=Y

Read access is permitted. In contrast to access control via the ACCESS operand, this does not automatically imply the right to execute the file.

WRITE=NO or W=N

Write access is forbidden (default value).

WRITE=YES or W=Y

Write access is permitted. In contrast to access control via the ACCESS operand, this does not automatically imply the right to read or execute the file.

EXEC=NO or X=N

Execution of the file is forbidden (default value).

EXEC=YES or X=Y

Execution of the file is permitted (not for file generation groups).

GUARDS

Activates/deactivates access control using GUARDS (Generally Usable Access contRol aDministration System). GUARDS protects the file by means of a special access profile. This access protection will be effective only if the GUARDS function unit of the software product SECOS is loaded (see the “SECOS” manual [8]).

File protection with GUARDS is activated if at least one access mode (READ/WRITE/EXEC) is linked with a “guard” entry in the “guard” catalog. The specification of READ/WRITE/EXEC=*NONE is also considered to be a “guard” entry and activates the GUARDS file protection mechanism (thus preventing read, write, or execute access to the file).This specification can be given even if the access profile has not yet been defined and even if the GUARDS function unit is not being used. In both cases, all attempts to access the file will be rejected.

It is only at the time of accessing a file protected with GUARDS that a check is performed to determine whether the specified guard entry (guard name) exists, whether it may be used, and whether the corresponding access profile permits the user to access the file in the desired access mode.

Notes

    • If GUARDS protection is entered for a file in the file catalog but no access profile has been defined for the specified guard name in the guard catalog, the file in question cannot be accessed.

    • If GUARDS protection is enabled, the access protection defined previously using BASIC-ACL or USER-ACCESS and ACCESS is retained.

    • For more information on access protection using the GUARDS function unit, see the section on “File protection” in the “Introductory Guide to DMS” [1].

= *NONE 
Deactivates GUARDS protection, thus disabling any existing access protection provided by a guard. In other words, the file will no longer be protected by the GUARDS protection mechanism. 

= ([READ...] [,WRITE...] [,EXEC...]) 
Each of the three access modes (read, write, execute) can be protected by means of a separate guard entry. When GUARDS protection is activated for a file, all access modes not explicitly specified are set to *NONE, which means that they are not permitted. 

[ READ = *NONE / <c-string: filename 1..18 without cat-gen-vers> /
<var: char:18> / (<reg: A(char:18)>) ]
Activates read access control using GUARDS.

Default value: READ = *NONE, if GUARDS protection was activated via another access mode.

= *NONE 
Disables GUARDS protection for read access (i.e. cancels the link between read access control and the access profile). File protection via GUARDS remains active, but the file cannot be read. 

= <c-string: filename 1..18 without cat-gen-vers>
Name of the access profile (guard entry in the guard catalog) that provides read protection via GUARDS.
Read access to the file is granted only if the conditions specified in the access profile are fulfilled.
The name must not exceed a maximum length of 8 characters (18 characters if specified with the user ID). It is not possible to specify a catalog ID. 

= (<reg: A(char:18)>)
Only possible with MF=M:The specified register contains the address of an 18-byte memory area containing the name of the READ-GUARD.

= <var: char:18>
Only possible with MF=M:
Symbolic address of an 18-byte memory area containing the name of the READ-GUARD.

[ ,WRITE = *NONE / <c-string: filename 1..18 without cat-gen-vers> / 
<var: char:18> / (<reg: A(char:18)>) ]
Activates write protection using GUARDS.

Note 

Unlike password protection, write access does not automatically imply read access.

Default value: WRITE = *NONE, if GUARDS protection was activated via another access mode.

= *NONE 
Disables GUARDS protection for write access (i.e. cancels the link between write access control and the access profile). File protection via GUARDS remains active, but no write access to the file is possible.

= <c-string: filename 1..18 without cat-gen-vers> 
Name of the access profile (guard entry in the guard catalog) that provides write protection via GUARDS.
Write access to the file is granted only if the conditions specified in the access profile are fulfilled.
The name must not exceed a maximum length of 8 characters (18 characters if specified with the user ID). It is not possible to specify a catalog ID. 

= (<reg: A(char:18)>)
Only possible with MF=M:
The specified register contains the address of an 18-byte memory area containing the name of the WRITE-GUARD.

= <var: char:18>
Only possible with MF=M:
Symbolic address of an 18-byte memory area containing the name of the WRITE-GUARD.

[ ,EXEC = *NONE / <c-string: filename 1..18 without cat-gen-vers> /
<var: char:18> / (<reg: A(char:18)>) / *UNCHANGED ] )
Activates execute protection using GUARDS.

Default value: EXEC = *NONE, if GUARDS protection was activated via another access mode.

= *NONE 
Disables GUARDS protection for execute access (i.e. cancels the link between execute access control and the access profile). File protection via GUARDS remains active, but no execute access to the file is possible. 

= <c-string: filename 1..18 without cat-gen-vers> 
Name of the access profile (guard entry in the guard catalog) that provides execute protection via GUARDS.
Write access to the file is granted only if the conditions specified in the access profile are fulfilled.
The name must not exceed a maximum length of 8 characters (18 characters if specified with the user ID). It is not possible to specify a catalog ID. 

= (<reg: A(char:18)>)
Only possible with MF=M:
The specified register contains the address of an 18-byte memory area containing the name of the EXEC-GUARD.

= <var: char:18>
Only possible with MF=M:
Symbolic address of an 18-byte memory area containing the name of the EXEC-GUARD.

= *UNCHANGED
Only relevant in conjunction with specification of PROTECT: 
If STATE=*UPDATE is specified at the same time, the value of GUARDS remains unchanged. If STATE=*NEW is specified at the same time, the value GUARDS=*NONE is entered.

The value *UNCHANGED has the following effects:

  • if PROTECT=*FROM-FILE is specified:
    prevents the corresponding value from being taken over from the reference file

  • if PROTECT=*BY_DEF_PROT_OR_STD is specified and if STATE=*NEW is specified without a value for PROTECT:
    prevents the corresponding value supplied by default protection from being taken over

  • if PROTECT=*STD and STATE=*UPDATE are specified at the same time:
    prevents the value in the catalog entry from being reset to the value GUARDS=*NONE

If STATE=*UPDATE is specified, then: if PROTECT is not specified, *UNCHANGED has the same effect as no specification.

If STATE=*NEW is specified, then: *UNCHANGED has the same effect as GUARDS=*NONE (irrespective of what is specified for PROTECT). 

IOPERF

Only for files and file generations on public volumes and files on Net-Storage volumes:
Requested performance attribute of the file for I/O processing. There are three performance attributes: “*VERY-HIGH”, “*STD”, and “*HIGH”. The highest permissible value depends on the user ID.

If a performance higher than the maximum permitted value is required, the maximum value from the catalog entry is taken over (no return code).

The operand is ignored (no return code!) if:

  • it is specified for files which are not located on a public volume or which are to be created.

  • the file identifier on the SM pubset concerned has a default storage class and physical allocation is forbidden.

A storage class entered in the file catalog entry in an SM pubset is removed if this operand is specified. The operand must not be specified simultaneously with the operand STOCLASnot equal to *NONE.

Default setting (only in conjunction with STATE=*NEW): IOPERF=*STD

= *STD
The file should not be processed via a cache.

= *HIGH
The file has a high performance priority and should therefore be processed via a cache if possible.

= *VERY-HIGH
The file has a very high performance priority, so all pages of the file should be maintained in cache if possible.

= *USER-MAX
The file is processed in accordance with the highest performance attribute permitted for the user ID.
This entry ensures that the maximum value is always used without program changes even if the value range is extended above *VERY-HIGH. 

IOUSAGE

Only for files and file generations on public volumes and files on Net-Storage volumes:
Specifies the I/O operations to which the performance attribute of the file (operand IOPERF) applies.

The operand is ignored (no return code!) if:

  • it is specified for files which are not located on a public volume or which are to be created.

  • the file identifier on the SM pubset concerned has a default storage class and physical allocation is forbidden.

A storage class entered in the file catalog entry in an SM pubset is removed if this operand is specified. The operand must not be specified simultaneously with the operand STOCLASnot equal to *NONE.

Default setting (only in conjunction with STATE=*NEW): IOUSAGE=*RDWRT

= *RDWRT
The performance attribute applies to read and write operations.

= *WRITE
The performance attribute applies to write operations only.

= *READ
The performance attribute applies to read operations only.

LARGE

Only for files and FGGs on disk:
similar to BACKUP, LARGE refers to the saving of files with ARCHIVE or HSMS. It specifies whether the complete file (or generations) is to be saved or only the blocks which have been changed since the last save operation.

Default setting (only in conjunction with STATE=*NEW): LARGE=*NO

= *NO
A complete backup is to be made.

= *YES
A partial backup is to be made (only blocks which have been changed); this setting is useful for large files. 

LAST

Only for file generation groups:
This operand may only be specified in conjunction with STATE=*NEW and the FIRST operand. It defines the absolute generation number of the most-recently cataloged (i.e. youngest) file generation and is required when reconstructing the index entry of a file generation group on private volumes. The LAST operand determines the number of the most recent file generation to be imported.

= <integer 1..9999>
The file generation specified by LAST can only be imported, not recataloged. This means that if the created index entry is not to be used for the reconstruction of a file generation group, there is no way of actually creating the file generation group specified here (or any other file generations >= FIRST; see also the description of the FIRST operand).

= (<reg: int:2>)
Only possible with MF=M:
The specified register contains the generation number of the latest cataloged file generation in the lower half-word.

= <var: char:2>
Only possible with MF=M:
Symbolic address of a half-word containing the generation number of the latest cataloged file generation 

LIST

Defines whether a log is to be written to SYSOUT for the processed file name.

= *NO
The file is not to be logged.

= *SYSOUT
Each processed file name and any errors are logged in a report.

= *ERRORS-TO-SYSOUT
Only file names whose processing leads to errors are logged in a report.

MACID

Only evaluated in conjunction with MF=C/D/M; defines the second and third characters of the field names and equates which are generated during macro expansion in the data area.

Default: 

MACID = DK

= <macid>
One- or two-character string defining the second and third characters of the generated field names and equates. 

MANCLAS

Only for permanent files and file generation groups on public volumes in SM pubsets and for files on the Net-Storage of an SM pubset if the software product HSMS is loaded:
Specifies whether data backup and migration are to be controlled via a management class (see the manual “HSMS” [10] for further details).

= *NONE
A management class is not assigned. Only the corresponding operand specifications are relevant for file backup and migration.

= <c-string: structured-name 1..8>
File backup and migration are controlled via the specified management class.The management class must exist and the user must posses the right to use it.The entry is ignored for files in SM pubsets or on private volumes and rejected for temporary files.

= (<reg: A(char:8)>)
Only possible with MF=M:
The specified register contains the address of an 8-byte memory area containing the name of the management class.

= <var: char:8>
Only possible with MF=M:
Symbolic address of an 8-byte memory area containing the name of the management class.

MF

The forms of the MF operand are described in detail in the appendix ("Macro types"). In all macros differentiated by MF operands (MF=L/E/D/C), the version operand must contain the same value. 

 

MIGRATE

Only for files on public disks and for files on Net-Storage:
is interpreted by means of the software product HSMS (Hierarchical Storage Management System).
Using MIGRATE, the user can specify whether files which he/she has not accessed for some time may be migrated to a storage level with slower access. The files are migrated from online processing level S0 to online background level S1 or offline background level S2 (e.g. tape). For further details see the “HSMS” manual [10].

File generation groups:
the MIGRATE value specified for an FGG index is representative of the whole group.

Default value:
MIGRATE = *ALLOWED for permanent files
MIGRATE = *INHIBITED for temporary files

= *ALLOWED
The file may be migrated from S0 to storage level S1 or S2.

= *INHIBITED
The file is not to be migrated but may, however, be temporarily stored to a background level, e.g. for reorganization purposes.

= *FORBIDDEN
Only for users with the right for physical allocation:
The file must not be migrated to a background level.
This entry is rejected if the file is migrated to a background level or if no authorization for physical allocation exists. 

NETCCS

Only for files of the node file type on Net-Storage. The specification is ignored for other files.
Specifies which Net-Storage coded character set (NETCCS) is to be used for a node file on Net-Storage.
The NETCCS is the actual character set with which the node file is created on the Net-Storage. All SAM node files and PAM node files created with BS2000 OSD/BC V11.0 or later have a defined NETCCS. PAM node files created with an older version than V11.0 are treated as if they were created with *NO-CONV.

= *USER_DEF
This is set according to the definition in the user entry. The resulting NETCCS of the file is identified based on the following table:


CCS entry 1

NETCCS entry 1

Resulting NETCCS in the catalog entry of the node file

EDF03IRV/*NONE

*ISO

ISO88591; during code conversion, EDF041 is assumed for CCS

EDF03DRV              

*ISO                            

ISO88591; during code conversion, EDF04DRV is assumed for CCS

EDF04DRV

*ISO

ISO88591

EDF04x

*ISO

ISO8859x with x=1,2,..F

ISO8859x

*ISO or *NO-CONV

ISOx

UTFx

*ISO or *NO-CONV

UTFx

<name_a 1..8>

<name_b 1..8>

<name_b 1..8>

<name_a 1..8>

*NO-CONV

<name_a 1..8>

1  User entry (SYSSRPM) or CATALOG or CREATE-FILE or MODIFY-FILE-ATTRIBUTES entry


= *ISO
For SAM node files, EBCDIC character sets are converted into character sets common in the open world. During this process, NETCCS is mirrored to an ISO variant that corresponds to the coded character set (CSSN). If an ISO or UTF character set has been specified under CODED-CHARACTER-SET, no conversion takes place. In this case, *ISO acts like *NO-CONV. Examples see table under *USER-DEF.

= *NO-CONVERSION
The character set is not converted.

= <name 1..8>
Name of the NETCCS with which the node file is created on the Net-Storage.


There is no check whether the name composes of a valid character set!

= (<reg: A(char:8)>) 

Only possible with MF=M:
The specified register contains the address of a storage area of 8 bytes, in which the name of the NETCCS is stored.

= <var: char:8>
Only possible with MF=M: Symbolic address of a storage area of 8 bytes, in which the name of the NETCCS is stored. 

NEWNAME

Only permitted with STATE=*UPDATE:
The file specified in the FILE operand is renamed to this name. It is thereby not possible to change either the pubset (catalog) or the user ID. A file on a Net-Storage volume cannot be renamed as a temporary file or as a file generation. See also the sections "Temporary files" and "File generation groups (FGG)".

= <c-string 1..80: filename 1..54 with-wild(80)>
The path name consists of [:catid2:][$userid2.]<filename2>.

catid 2
ID of the catalog containing the file catalog entry. If an entry is made here, it must beidentical to the catid1 specified in FILE.

userid 2
User ID under which the file is stored. If an entry is made here, it must be identical to the userid1 specified in FILE.

filename 2
File name to which filename1, which is specified in the FILE operand, is to be renamed. A suitable construction can be specified if filename1 contains wildcards. If filename1 ends with a period. 
filename2 may also end with a period.filename2 must be specified if a file/FGG is to be renamed. filename1 and filename2 must be different.

In the case of tape files, filename1 must differ from filename2 by the added or modified version designation.

If HSMS is used then files that were migrated to storage level S1 or S2 cannot be renamed.

= (<reg: A(char:80)>)
Only possible with MF=M:
The specified register contains the address of an 80-byte memory area containing the new path name. If the path name is shorter than the maximum length of 80 bytes, it must be terminated with at least one blank (X'40').

= <var: char:80>
Only possible with MF=M:
Symbolic address of an 80-byte memory area containing the new path name. If the path name is shorter than the maximum length of 80 bytes, it must be terminated with at least one blank (X'40'). 


NUM_OF_BACKUP_VERS

Maximum number of file versions that the file takes part in the version backup with.

For files on public volumes and for files on Net-Storage: 
If the file is being newly created with STATE=*NEW, the value of the NUMBACK system parameter is taken over. If the attributes of an existing file are being changed (STATE=*UPDATE) and the operand is not specified, the value of the file attribute NUM-OF-BACKUP-VERS remains unchanged.

For files on private disk, for FGG in general  and for temporary files:
NUM_OF_BACKUP_VERS may not have a value > 0. If the operand for these objects is not specified, the NUM-OF-BACKUP-VERS file attribute is set to the value 0.

For tape files:
If the file is being newly created with STATE=*NEW, the file attribute NUM-OF-BACKUP-VERS is alway set to the value 0. This is independent of the value of the operand NUM_OF_BACKUP_VERS or the value of the system parameter NUMBACK. If the attributes of an existing file are being changed (STATE=*UPDATE), the file attribute NUM-OF-BACKUP-VERS remains set to the value 0, regardless of whether the operand NUM_OF_BACKUP_VERS is specified or not. 

= <integer 0..32>
Maximum number of file versions that the file takes part in the version backup with. If the value is 0, the file/FGG is not part of the version backup.

= (<reg: int:1>)
Only possible with MF=M:
In the lower half-word, the specified register includes the maximum number of file versions of the file/FGG to be stored in the version backup archive.

= <var: int:1>
Only possible with MF=M:
Symbolic address of a half-word in which the maximum number of file versions of the file to be saved in the version backup archive is stored.

OPNBACK

Is provided specially for database files (UDS files) and permits the user to back up the file with ARCHIVE (see the “ARCHIVE” manual [9]) while it is still open. This may lead to inconsistencies in the file; it is the user's responsibility to avoid this. 

Default setting (only in conjunction with STATE=*NEW): OPNBACK=*NO

= *NO
Only the closed file is saved.

= *YES
The file may be backed up while it is open.

OTHERAR

Only for files on public volumes and for files on Net-Storage:
Activates access control via the BASIC-ACL and specifies how a user who is neither the file owner nor belongs to the same user group as the file owner may access the file if no GUARDS protection is active.
User groups can be defined in a system only if the software product SECOS is installed (see the “SECOS” manual [8]).
In a system without user groups and in which SECOS is not installed, the value for OTHERAR applies to all user IDs except the file owner.

The operand must not be specified together with the BASACL operand.

= *NO-ACCESS
No access to the file is permitted for the user group.

= ( [READ = *NO / READ = *YES / R = *N / R = *Y]
[,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
[,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )
The access types for which *YES or *Y is specified in the list are permitted. The parentheses are component parts of the access list and must be specified. The various elements of the access list have the following meanings:


READ=NO or R=N

Read access is forbidden (default value).

READ=YES or R=Y

Read access is permitted. In contrast to access control via the ACCESS operand, this does not automatically imply the right to execute the file.

WRITE=NO or W=N

Write access is forbidden (default value).

WRITE=YES or W=Y

Write access is permitted. In contrast to access control via the ACCESS operand, this does not automatically imply the right to read or execute the file.

EXEC=NO or X=N

Execution of the file is forbidden (default value).

EXEC=YES or X=Y

Execution of the file is permitted (not for file generation groups).


OWNERAR

Only for files on public volumes and for files on Net-Storage:
Activates access control via the BASIC-ACL and specifies how the file owner (and the system administrator) may access the file if no GUARDS protection is active.

The operand must not be specified together with the BASACL operand.

= *NO-ACCESS
No access to the file is permitted for the user group.

= ( [READ = *NO / READ = *YES / R = *N / R = *Y]
[,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
[,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )
The access types specified with *YES or *Y in the list are permitted. The parentheses are component parts of the access list and must be specified.

The various elements of the access list have the following meanings:


READ=NO or R=N

Read access is forbidden (default value).

READ=YES or R=Y

Read access is permitted. In contrast to access control via the ACCESS operand, this does not automatically imply the right to execute the file.

WRITE=NO or W=N

Write access is forbidden (default value).

WRITE=YES or W=Y

Write access is permitted. In contrast to access control via the ACCESS operand, this does not automatically imply the right to read or execute the file.

EXEC=NO or X=N

Execution of the file is forbidden (default value).

EXEC=YES or X=Y

Execution of the file is permitted (not for file generation groups).


PARAM

Designates the address of the operand list and is only evaluated in conjunction with MF=E (see also "Macro types").

= <name 1..8>
Symbolic address (name) of the operand list. 

PREFIX

Evaluated only in conjunction with MF=C/D/M. Defines the first character of each field name and equate generated in the data area when the macro is expanded.

= I
Default prefix with which the field names and equates generated by the assembler begin.

= pre
Single-character prefix with which the field names and equates generated by the assembler are to begin.

= *
No prefix is generated.

PROTECT

Defines where the protection attribute is to be taken over from, that cannot be explicitly defined with the respective operand.
The following protection attributes (operands) can be assigned with PROTECT (depending on the operand values):

Access protection

Protection attribute

CATAL operand

Standard access control (access type)

ACCESS

ACCESS

Standard access control (access by other users)

USER-ACCESS

SHARE

Basic access control list

BASIC-ACL

BASACL,
OWNERAR,
GROUPAR,
OTHERAR

Access control via GUARDS

GUARDS

GUARDS

Passwords

READ-PASSWORD,
WRITE-PASSWORD,
EXEC-PASSWORD

RDPASS,
WRPASS,
EXPASS

Binary deletion

DESTROY-BY-DELETE

DESTROY

Memory space lock

SPACE-RELEASE-LOCK

RELSPAC

Release date for deletion

FREE-FOR-DELETION

DELDATE

Expiration date

EXPIRATION-DATE

EXDATE
or
RETPD

The values of these protection attributes may be preset differently depending on the value of the STATE operand (NEW or UPDATE); (see tables). 

Protection attributes when cataloging new files

PROTECTION-ATTR=
(Protection attribute)

*FROM-FILE

*STD 1)

*BY-DEF-PROT-OR-STD 1)
(Def Prot. not active)

*BY-DEF-PROT-OR-STD 1)
(Default Protection active)

ACCESS

Value
transferred
from
reference file

WRITE

WRITE





Value
supplied by default
protection

USER-ACCESS

OWNER-
ONLY

OWNER-ONLY

BASIC-ACL

NONE

NONE

DESTROY-BY-DELETE

NO

NO

GUARDS

NONE

NONE

SPACE-RELEASE-LOCK

NO

NO

READ-PASSWORD

NONE

NONE

NONE

WRITE-PASSWORD

NONE

NONE

NONE

EXEC-PASSWORD

NONE

NONE

NONE

FREE-FOR-DELETION

NONE

NONE

NONE

NONE

AUDIT

NONE

NONE

NONE

NONE

1) System default values

No expiration date (EXPIRATION-DATE) can be defined for the first entry. In the case of files, it is implicitly preset to *NONE, and in the case of file generation groups to *TODAY. 

Protection attributes when changing file attributes

PROTECTION-ATTR=
(Protection attribute)

*UNCH

*FROM-FILE

*STD 1)

*BY-DEF-PROT-OR-STD 1)
(Def Prot. not active)

*BY-DEF-PROT-OR-STD 1)
(Default Protection active)

ACCESS

UNCHANGED




Value
transferred
from
reference file

WRITE

WRITE

Value
supplied by default
protection

USER-ACCESS

UNCHANGED

OWNER-
ONLY

OWNER-ONLY

BASIC-ACL

UNCHANGED

NONE

NONE

DESTROY-BY-DELETE

UNCHANGED

NO

NO

GUARDS

UNCHANGED

NONE

NONE

SPACE-RELEASE-LOCK

UNCHANGED

NO

NO

EXPIRATION-DATE 2)

UNCHANGED

TODAY

TODAY

READ-PASSWORD

UNCHANGED

UNCHANGED

UNCHANGED

NONE

WRITE-PASSWORD

UNCHANGED

UNCHANGED

UNCHANGED

NONE

EXEC-PASSWORD

UNCHANGED

UNCHANGED

UNCHANGED

NONE

FREE-FOR-DELETION

UNCHANGED

UNCHANGED

UNCHANGED

NONE

AUDIT

UNCHANGED

UNCHANGED

UNCHANGED

UNCHANGED

UNCHANGED


1) System default values

2) The expiration date is only entered for permanent files with creation dates or for file generation groups. If the referende file has no expiration date, *TODAY is entered.

 = *STD
The following system defaults are set:

ACCESS

= *WRITE

BASIC-ACL

= *NONE

USER-ACCESS

= *OWNER-ONLY (also for tape files)

DESTROY

= *NO

SPACE-RELEASE-LOCK

= *NO

GUARDS

= *NONE

EXPIRATION-DATE

= *TODAY (only for permanent files with a creation date and for file generation groups)

PROTECT=*STD is rejected for individual file generations.

= *BY_DEF_PROT_OR_STD
The protection attributes are assigned depending on the use of the “default protection” function.
If default protection is activated, it provides values for all the protection attributes listed above, unless these have been specified explicitly. If default protection has not been activated, the protection attributes are entered as for PROTECT=*STD. In addition, the following system default values apply:

FREE-FOR-DELETION

= *NONE

READ-PASSWORD

= *NONE

WRITE-PASSWORD

= *NONE

EXEC-PASSWORD

= *NONE

If STATE=*NEW is specified, PROTECT=*BY_DEF_PROT_OR_STD has the same effect as no specification.

= (*FROM_FILE,<c-string: filename 1..54>)
All the protection attributes listed for *STD that are not explicitly specified by the caller are imported from the reference file. The protection attributes taken over from the reference file are treated as if they had been specified explicitly.

Exceptions:

      • In the case of a file generation group, the execution rights are ignored rather than rejected.

      • In the case of temporary files, EXDATE is ignored rather than rejected.

If the reference file does not have an expiration date, EXDATE=*TODAY is used for file generation groups and for permanent files with a creation date.

Passwords and the release date of the reference file are not copied: if CATAL STATE=*NEW applies, they have the system default value *NONE (see also "Protection attributes when cataloging new files"), if STATE=*UPDATE applies, they have the value *UNCHANGED (see the table "Protection attributes when changing file attributes").

The reference file must be located on the same pubset as the file specified by FILE. If no catalog ID is specified then the user ID's default catalog is assumed. For this reason it is always necessary to specify the catalog ID if file does not refer to the default ID.

= (*FROM_FILE,(<reg: A(char:54)>))
Only possible with MF=M:
The specified register contains the address of a 54-byte memory area containing the path name. If the path name is less than the maximum of 54 bytes long, it must be terminated with at least one blank (X'40').

= (*FROM_FILE,<var: char:54>)
Only possible with MF=M:
Symbolic address of a 54-byte memory area containing the path name. If the path name is less than the maximum of 54 bytes long, it must be terminated with at least one blank (X'40'). 

RDPASS

This operand is used to define, modify or delete a read password.

Temporary files: Password protection is not possible.
Tape files: The password is recorded in the HDR3 label.
For encrypted files: All RDPASS specifications are handled like *UNCHANGED

Default setting (only in conjunction with STATE=*NEW): RDPASS=*NONE

= *NONE
No read password is assigned or an existing read password is deleted.

= *UNCHANGED
If STATE=*UPDATE is specified at the same time, the value of RDPASS remains unchanged. If STATE=*NEW is specified at the same time, the value RDPASS=*NONE is entered.
If PROTECT=*BY_DEF_PROT_OR_STD or STATE=*NEW is specified without a value for PROTECT, *UNCHANGED prevents the corresponding value supplied by default protection from being taken over.

If STATE=*UPDATE is specified, then: if PROTECT=*BY_DEF_PROT_OR_STD is not specified, *UNCHANGED has the same effect as no specification.

if STATE=*NEW is specified, then: *UNCHANGED has the same effect as the specification *NONE (irrespective of what is specified for PROTECT).

= <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483647>
Defines a password required for read access.

If a program is protected by a read password, this also applies to the load module in main memory. The LOAD-PROGRAM command is rejected, as are the IDA commands DISPLAY and AT. If a source program is protected by a read password, it cannot be assembled or compiled.

= (<reg: A(char:4)>)
Only possible with MF=M:
The specified register contains the address of a 4-byte memory area containing the read password.

= <var: char:4>
Only possible with MF=M:
Symbolic address of a 4-byte memory area containing the read password. 

RELSPAC

Specifies whether or not storage space may be released by using the MODIFY-FILE-ATTRIBUTES command or the FILE macro.

Default setting (only in conjunction with STATE=*NEW:) RELSPAC=*ALLOWED

= *ALLOWED
The storage space may be released.

= *IGNORED
The request to release space is ignored.

= *UNCHANGED
Only relevant in conjunction with specification of PROTECT:
If STATE=*UPDATE is specified at the same time, the value of RELSPAC remains unchanged. If STATE=*NEW is specified at the same time, the value RELSPAC=*ALLOWED is entered.

The value *UNCHANGED has the following effects:

      • if PROTECT=*FROM-FILE is specified: prevents the corresponding value from being taken over from the reference file

      • if PROTECT=*BY_DEF_PROT_OR_STD is specified and STATE=*NEW is specified without a value for PROTECT:prevents the corresponding value supplied by default protection from being taken over

      • if PROTECT=*STD and STATE=*UPDATE are specified together:prevents the value in the catalog entry from being reset to the value RELSPAC=*ALLOWED

If STATE=*UPDATE is specified, then: if PROTECT is not specified, *UNCHANGED has the same effect as no specification.

If STATE=*NEW is specified, then: *UNCHANGED has the same effect as RELSPAC=*ALLOWED (irrespective of what is specified for PROTECT). 

RETPD

Defines an EXPIRATION DATE before which the file must not be updated or erased, i.e. during which it can only be read.

Default value (only if STATE=*NEW): RETPD = 0, i.e. the file or generation can be updated or erased at any time.

An expiration date can only be defined for an existing file, i.e. the catalog fields CRE-DATE and FILE-STRUC must contain a value not equal to NONE. This also means that RETPD cannot be specified together with the CATAL operand STATE=*NEW or STATE=*FOREIGN (RETPD is ignored).

The expiration date is calculated from the number of specified days and is always based on local time with the date and a time of 00:00:00.

The expiration date can be canceled or modified by means of a further CATAL macro containing the RETPD operand. Once the expiration date has elapsed, write access is again possible.

An existing generation of an FGG can be erased when creating a new generation even if the expiration date has not expired (see the DISP operand for details).

Simultaneous use of the EXDATE and RETPD operands is not possible.

If the RETPD operand is specified, the EXDATE value returned by the default protection function is ignored.

= <integer 0..32767>
Number of days for which the file is to be protected.

= (<reg: int:2>)
Only possible with MF=M:
The specified register contains the number days for which the file is to be protected in the lower half-word.

= <var: char:2>
Only possible with MF=M:
Symbolic address of a half-word containing the number days for which the file is to be protected. 

S0MIGR

Only relevant with STATE=*UPDATE for files in SM pubsets that already occupy storage:
Defines whether the file within the SM pubset (storage hierarchy level S0) may be reallocated to another volume set.

A storage class entered in the file catalog entry in an SM pubset is removed if this operand is specified. The operand must not be specified simultaneously with the operand STOCLAS not equal to *NONE.

=*ALLOWED

The file may be reallocated within the SM pubset.

The value is ignored for files and generation on volume sets with permanent data storage if the file identifier on the SM pubset concerned has a default storage class and physical allocation is forbidden.

= *FORBIDDEN
Only for users with the right for physical allocation:
Automatic reallocation is not permitted. The file is to remain on the volume set to which it is currently allocated.
This entry is rejected in the following cases:

      • No authorization for physical allocation exists.

      • The file is on an SM pubset but does not occupy storage.

      • The file is cataloged on an SM pubset, but resides on a Net-Storage volume. 

SHARE

Specifies whether the file or file generation may be processed under a user ID other than that of the owner if no BASIC-ACL or GUARDS protection is active. The type of access which is permitted is determined by the other file protection attributes (see the operands ACCESS, WRPASS etc.).

Default setting (only in conjunction with STATE=*NEW): SHARE=*NO for disk files, SHARE=*YES for tape files

Tape files:
when the file is opened for the first time, DMS writes the SHARE indicator in the HDR1 label (“access indicator”).

= *NO
The file is not shareable.
Tape files, HDR1 label: access indicator = 1

= *YES
File access is permitted for any user ID, i.e. the file or generation is shareable.
Temporary files, SHARE=*YES is not permitted
Tape files, HDR1 label: access indicator = X'40'

= *SPECIAL
File access is permitted for the user ID with HW-MAINTENANCE privileges.
SHARE=*YES is implied.
This value must not be specified for file generation groups.

= *UNCHANGED
Only relevant in conjunction with specification of PROTECT:
If STATE=*UPDATE is specified at the same time, the value of SHARE remains unchanged. If STATE=*NEW is specified at the same time, the value SHARE=*NO is entered.

The value *UNCHANGED has the following effects:

      • if PROTECT=*FROM-FILE is specified:
        prevents the corresponding value from being taken over from the reference file

      • if PROTECT=*BY_DEF_PROT_OR_STD is specified and STATE=*NEW is specified without a value for PROTECT:
        prevents the corresponding value supplied by default protection from being taken over

      • if PROTECT=*STD and STATE=*UPDATE are specified at the same time:prevents the value in the catalog entry from being reset to the value SHARE=*NO

If STATE=*UPDATE is specified, then: if PROTECT is not specified, *UNCHANGED has the same effect as no specification.

If STATE=*NEW is specified, then: *UNCHANGED has the same effect as SHARE=*NO (irrespective of what is specified for PROTECT). 

STATE

Specifies whether a new catalog entry is to be created, an existing catalog entry is to be updated or a catalog entry is to be imported.

= *NEW
A new catalog entry is to be created.

= *UPDATE
An existing catalog entry (FILE=...) is to be updated. STATE=*UPDATE must be specified for each access to an existing catalog entry. The attributes whose associated operands are specified in this CATAL macro are updated. If password protection exists for the file, the write password must be entered in the password table of the job by means of a PASSWORD command before the catalog entry can be updated.

= *FOREIGN
Only for exported FGGs on private disks:
A group entry (that is only in the F1 label of a private disk) of a file generation group stored on private disks is to be imported. The VOLUME and DEVICE operands must be specified with this operand; all other operands are ignored or rejected. The generations to be transferred must then be imported individually or collectively by using the FILE macro (operands STATE=*FOREIGN, DEVICE and VOLUME) or IMPORT, respectively.

STOCLAS

The operand is only relevant for files, file generations and file generation groups on public volumes in SM pubsets and files on a Net-Storage volume which are cataloged on an SM pubset.

It defines whether the data storage location selection (volume set) within the SM pubset is to be controlled via a storage class for files and file generations with STATE=*UPDATE for which storage has been allocated.
A storage class must not be assigned (i.e. by specifying the operand STOCLAS not equal to *NONE) simultaneously with assignment of the separate attributes it contains (AVAIL, DISKWR, IOPERF or IOUSAGE operand) or together with the S0MIGR operand.
The request is also rejected if the file does not occupy storage space or if the storage class contains the attribute AVAILABILITY=*HIGH and the file is currently migrated to a background level (S1 or S2 migration with HSMS).

The operand defines the default storage class for file generation groups, which is used for the first storage assignment to a generation if no explicit storage class or one of the separate attributes is specified.

With STATE=*NEW, a storage class must not be assigned (i.e. by specifying the STOCLAS≠*NONE operand) together with the WORKGRP operand.
With STATE=*UPDATE, it is only possible to assign a storage class whose WORK-FILE attribute matches the WORK-FILE attribute of the file generation group.
A file on a Net-Storage volume can be assigned a storage class. In this case no work file and no file with the preliminary file format K can be created.

Note

Specifying a value which is not equal to *NONE for the STOCLAS operand can result in the file being displaced (reallocated) from its current volume set to another volume set which suits the storage class better. The following cases can occur here:

      • If the storage class contains AVAILABILITY=*HIGH and AVAILABILITY=*STD applies for the current volume set, the file must be reallocated to a colume set with the attribute AVAILABILITY=*HIGH. If reallocation is not possible, the CATAL call is rejected.

      • If the storage class contains a volume set list and the file is not located on a volume set in the volume set list, the file will, if possible, be reallocated to a volume set from the list. If reallocation is not possible, the CATAL call is executed without reallocation taking place.

The file is locked (opened) during this reallocation, i.e. all accesses to the file or its catalog entry are rejected instead of being put into a wait state.

= *NONE
No storage class is assigned. The corresponding separate attributes are evaluated for selecting the storage location.

The value is ignored for files and generation on volume sets with permanent data storage if the file identifier on the SM pubset concerned has a default storage class and physical allocation is forbidden.

= *UPDATE
Only relevant for files that have been assigned a storage class whose attributes have been modified
The file attributes are modified according to the assigned storage class. If the entry is made for file generation groups, the only check made is whether the WORK-FILE attribute of the storage class still matches the WORK-FILE attribute of the file generation group. The request is rejected with a return code if this is not the case.

= *STD
The default storage class of the user ID for the respective pubset is used for files and file generation groups. The default storage class of the file generation group is used for file generations, in other words the storage class that was assigned to the file generation group index.

= <c-string: structured-name 1..8>
The specified storage class defines selection of the file storage location.
The storage class must exist and the user must have the right to use it.
The file attributes are not updated if the file was not already assigned the specified storage class, i.e. intermediate storage class modifications are not effective, see *UPDATE.
The entry is ignored for files in SF pubsets or on private volumes. The entry is rejected with STATE=*NEW and for cataloged files without allocated storage space.

= (<reg: A(char:8)>)
Only possible with MF=M:
The specified register contains the address of an 8-byte memory area containing the name of the storage class.

= <var: char:8>
Only possible with MF=M:
Symbolic address of an 8-byte memory area containing the name of the storage class. 

TIMBASE

Defines the basis on which absolute dates specified with the EXDATE and DELDATE operands are to be interpreted (relative dates always refer to local time).

The TIMBASE operand has no effect on dates supplied by the default protection function. These always refer to the local time.

= *UTC
Absolute dates are interpreted based on UTC world time (universal time coordinate).

= *LTI
All dates are interpreted based on LTI (local time). 

USRINFO

Enters user metainformation into the file catalog entry. The entry can be a maximum of 8 bytes long, with any contents, whose meaning is defined by the user. The operand is ignored for files on private volumes.

= *NONE
No entry or the entry will be deleted.

= <c-string 1..8>
The specified characters are entered.

= (<reg: A(char:8)>)
Only possible with MF=M:
The specified register contains the address of an 8-byte memory area containing the metainformation to be entered.

= <var: char:8>
Only possible with MF=M:
Symbolic address of an 8-byte memory area containing the metainformation to be entered. 

VERSION

Specifies which version of the parameter list is to be generated. The latest version should always be used.
The default setting cannot be specified explicitly!

Implicit default setting: VERSION=0

The parameter list format that was supported prior to BS2000 V9.5A is generated, but only for the parameters recognized at the time.
The supported operands and operand values are listed in table "Version differences - VERSION=0/1/2/3/4".

= 1
Generates the parameter list format that was supported in BS2000 V9.5 and V10.0, but only for the parameters recognized at the time.
The supported operands and operand values are listed in table "Version differences - VERSION=0/1/2/3/4".

= 2
Generates the parameter list format for versions BS2000/OSD-BC V1.0 and V2.0.

= 3
The parameter list format for versions BS2000/OSD-BC V3.0 and higher is generated.

= 4
The parameter list format for versions BS2000 OSD-BC V11.0 and higher is generated.

Note

If existing software which manipulates the generated parameter list is to be reassembled, the old format (0, 1 or 2) must be requested. In all other respects, source code compatibility is ensured. 

VOLUME

Only for FGGs on private disks:
Specifies the volume serial number (“vsn”) of a private volume (private disk).

The operands VOLUME and DEVICE must be specified when an FGG is created or reconstructed on private disks (STATE=*NEW) or when an FGG kept on private disks is to be imported (STATE=*FOREIGN).

If the software product MAREN is being used, a VOLUME may be specified without a DEVICE.

= <c-string 1..6>
Archive number

= (<reg: A(char:6)>)
Only possible with MF=M:
The specified register contains the address of a 6-byte memory area containing the volume serial number.

= <var: char:6>
Only possible with MF=M:
Symbolic address of a 6-byte memory area containing the volume serial number. 

WORKGRP

Only relevant when setting up a file generation group in SM pubsets:
Defines whether the file generation group is to be a permanent or work file generation group.
Work file generation groups can be deleted by system administration at a time specified by system administration.

= *YES
The file generation group is set up as a work file generation group. 

WRPASS

The user can define, update or delete a write password with this operand.

Temporary files:
Password protection is not permitted.

Tape files:
The password is stored in the HDR3 label.

Default setting – only in conjunction with STATE=*NEW: WRPASS=*NONE

= *NONE
No password is defined or an existing password is deleted.

= *UNCHANGED
If STATE=*UPDATE is specified at the same time, the value of WRPASS remains unchanged. If STATE=*NEW is specified at the same time, the value WRPASS=*NONE is entered.

If PROTECT=*BY_DEF_PROT_OR_STD or STATE=*NEW is specified without a value for PROTECT, *UNCHANGED prevents the corresponding value supplied by default protection from being taken over.

If STATE=*UPDATE is specified, then: if PROTECT=*BY_DEF_PROT_OR_STD is not specified, *UNCHANGED has the same effect as no specification.

If STATE=*NEW is specified, then: *UNCHANGED has the same effect as the specification *NONE (irrespective of what is specified for PROTECT).

= <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483647>
Defines the password needed for write access.

= (<reg: A(char:4)>)
Only possible with MF=M:
The specified register contains the address of a 4-byte memory area containing the write password.

= <var: char:4>
Only possible with MF=M:
Symbolic address of a 4-byte memory area containing the write password. 

Programming notes

  1. Calling the CATAL macro with the new operand list:
    label CATAL <operands,...>,VERSION=3

  2. Register 1 Address of the operand list.

  3. The error code is only returned in the standard header of the parameter list (IDKRET field) and no longer in general-purpose register 15 as in version 2. 

Return codes

Standard header: ccbbaaaa

The following code relating to execution of the CATAL macro is returned in the standard header (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):

X'cc'

X'bb'

X'aaaa'

Meaning


X'00'

X'0000'

No error

X'01'

X'00'

X'0000'

Only with check dialogs:
Request was fully or partially retracted in dialog, i.e. at least one check dialog was answered with *NO.

X'02'






















































































































X'00'

X'0000'

Only in conjunction with CHECK≠*NO:
An error has occurred but continuation of the function was requested in an error dialog.

X'40'

X'0501'

Requested catalog not available

X'82'

X'0502'

Requested catalog in the wait state

X'40'

X'0503'

Incorrect information in MRSCAT

X'82'

X'0504'

Error in catalog management system

X'40'

X'0505'

Error during computer communication (MRS)

X'80'

X'0506'

Operation canceled because of master switch

X'01'

X'0509'

Specified number of versions for version backup invalid

X'40'

X'0510'

Error when calling an internal function

X'40'

X'0512'

Requested catalog unknown

X'40'

X'0513'

Call rejected by system exit routine

X'40'

X'051B'

User ID not known in specified pubset

X'40'

X'051C'

No access right to specified pubset

X'40'

X'051D'

LOGON password to specified pubset is different

X'20'

X'0527'

I/O error while reallocating the data in an SM pubset

X'20'

X'0530'

CMS reports error during a request for storage space

X'20'

X'0531'

Unexpected error during catalog access

X'82'

X'0532'

File locked because it is in use

X'82'

X'0534'

Private volume cannot be assigned

X'40'

X'0535'

No access right to the file catalog entry (only in conjunction with CCS or NETCSS assignment to a foreign user ID)

X'20'

X'0536'

Error in file management system

X'40'

X'053A'

Error while modifying the F1 label on a private disk

X'20'

X'053B'

System error during file access

X'82'

X'053C'

Catalog file of the pubset is full

X'40'

X'053D'

Catalog of F1 label block is destroyed

X'40'

X'053E'

File on private volume is already cataloged

X'82'

X'053F'

File is reserved by another task

X'40'

X'0540'

No volume set that matches the required file attributes is available in the specified pubset

X'82'

X'0541'

Data reallocation is not possible because there is no suitable volume set with enough free storage space

X'40'

X'0546'

File catalog entry is full

X'82'

X'054D'

Storage allocation exceeded

X'20'

X'054F'

Unexpected error while accessing JOIN file

X'40'

X'0555'

STATE=*FOREIGN: specified file already exists in the catalog of the user

X'82'

X'055A'

Device currently reserved

X'40'

X'055C'

Catalog entry on private disk not found

X'40'

X'055D'

User has no right for physical allocation

X'40'

X'055F'

Volume could not be reserved

X'01'

X'0576'

Contradictory operand combination or reserved parameter area fields used

X'20'

X'0577'

Internal error while accessing job environment

X'20'

X'0578'

Internal error while checking access rights

X'01'

X'0579'

Invalid operand specified for temporary file

X'40'

X'057A'

Attribute cannot be assigned for work file

X'40'

X'057E'

HSMS not available

X'40'

X'057F'

File is migrated, renaming not possible

X'01'

X'0590'

Volume specification not permitted without device specification

X'82'

X'0594'

Insufficient virtual memory available (also if wildcards are used and too many files are selected)

X'01'

X'0599'

Operand is not supported in the RFA-BS version

X'40'

X'05A0'

Updating the performance attributes (DISKWR, IOPERF, IOUSAGE) is not permitted if data in the write cache has not been written yet

X'01'

X'05A8'

Requested device type not found in system

X'40'

X'05AD'

Only when renaming with simultaneous S0 migration:
File attributes were modified but the file could not be renamed because of CMS problems

X'82'

X'05B0'

No suitable device is currently available

X'40'

X'05B4'

Only in conjunction with VOLUME/DEVICE:
A MOUNT message for the requested volume was answered with 'NO' by the operator

X'40'

X'05B5'

Guard not available

X'40'

X'05BD'

Illegal combination of file and volume set attributes

X'20'

X'05C7'

Internal error in DMS

X'82'

X'05C8'

Maximum number of files reached for user ID

X'20'

X'05CA'

Internal error while modifying the CE allocation

X'01'

X'05CB'

Incorrect or illegal first file name

X'40'

X'05CC'

File name already cataloged

X'01'

X'05CD'

Incorrect or illegal new file name

X'40'

X'05CE'

First file name not cataloged

X'40'

X'05CF'

File is protected with a password

X'82'

X'05D0'

File locked because it is in use

X'40'

X'05D1'

Error while requesting a device

X'40'

X'05D2'

EXPIRATION-DATE was specified for an empty file

X'01'

X'05D3'

GUARDS name incorrect

X'40'

X'05D4'

GUARDS catalog must not be protected by a guard

X'01'

X'05E8'

File name illegal for disk file

X'01'

X'05EE'

File name too long

X'01'

X'05EF'

BASIC-ACL or guard cannot be assigned

X'01'

X'05FA'

Access to REMOTE-IMPORTED pubset not possible

X'40'

X'05FC'

Specified user ID not in home pubset

X'40'

X'05FD'

File is write-protected with USER-ACCESS or EXPIRATION-DATE (only for CCS or NETCSS assignment to foreign user ID)

X'40'

X'0606'

Volume request rejected by MAREN

X'40'

X'0609'

Action not permitted for system file

X'40'

X'060D'

Error while reading reference file attributes (PROTECT operand)

  • Syntax error in file name, possibly also in conjunction with an ACS replacement

  • Specified reference file not accessible

X'40'

X'0610'

Function execution supplies a return code for at least one of the selected file names

X'01'

X'0611'

Incorrectly specified construction (NEWNAME operand with wildcards)

X'40'

X'0613'

Unknown management class

X'40'

X'0614'

No access right for management class

X'40'

X'0616'

Specified attributes require an S0 migration, but the file is locked against reallocation

X'40'

X'0618'

Unknown storage class

X'40'

X'0619'

No access right for storage class

X'40'

X'0640

Access to Net-Storage is rejected by the ONETSTOR subsystem because of communication problems with the net client

X'40'

X'0643'

Net client reports access error

X'40'

X'0644'

Net client reports internal error

X'40'

X'0645'

File does not exist on Net-Storage

X'40'

X'0646'

FGG not permitted on Net-Storage volume

X'40'

X'0649'

Net server reports POSIX ACL error

X'40'

X'064A'

Net client reports that access to files on the Net-Storage volume is forbidden

X'40'

X'064B'

Access to node files from the net client not supported

X'40'

X'0666'

File is write-protected by GUARDS (only with CCS or NETCSS assignment to foreign user ID)

X'40'

X'0685'

File occupies no storage space and AVAIL=*HIGH, a storage class or an S0 migration lock is to be set

X'20'

X'069D'

Incorrect catalog entry structure

X'40'

X'06A6'

AUDIT specification not permitted for user ID

X'00'

X'06A9'

Generations missing from the file generation group

X'40'

X'06B6'

File attributes unsuitable for the file generation group

X'01'

X'06C1'

More than 255 generations requested or conflict with BASE, LAST or FIRST operand

X'01'

X'06C3'

Illegal name for a file generation group

X'40'

X'06C4'

File generation group not cataloged

X'01'

X'06C5'

File generation group name too long

X'01'

X'06C6'

Tape file name or attribute cannot be modified

X'01'

X'06C7'

Invalid generation number specified

X'01'

X'06C8'

Attribute can only be modified for the complete file generation group

X'01'

X'06C9'

Generation-specific operand in incorrect context

X'00'

X'06CA'

Command executed, apart from incorrect BASE specification

X'40'

X'06CC'

Only with wildcard selection:
No file matches the specified selection entry

X'40'

X'06CD'

Specified file generation group locked with write protection against extensions

X'01'

X'06CE'

Retention date (RETPD, EXDATE) or delete date (DELDATE) incorrectly specified

X'40'

X'06D5'

Deleting of superfluous file generations is prevented by write protection

X'01'

X'06DA'

Illegal combination of private and public volumes for a file generation group

X'01'

X'06DB'

Incorrect VOLUME and DEVICE specification

X'01'

X'06FA'

New file name only permitted with STATE=*UPDATE

X'01'

X'06FB'

Granting of execution rights not possible for file generation groups

X'01'

X'06FD'

Parameter range invalid or not accessible

X'40'

X'06FF'

BCAM connection interrupted

X'01'

X'FFFF'

Incorrect function number in parameter range header

X'03'

X'FFFF'

Incorrect version number in parameter range header