Determining the file format (K, NK2, NK4) is more complex with SM pubsets than with SF pubsets. During initial allocation, the system defines a preformat for the file with a view to optimal file location selection, and enters it in the catalog entry. The final file format is not determined until the file is opened, when it is derived from the preformat, the actual file location and the OPEN parameters (see section "Determining the file format"). As mentioned earlier (see section "Direct attribute specification"), it is still advisable to inform the system of the desired file format during initial allocation. This section is designed to show what options are available for this and what defaulting mechanisms are provided by the system.
The system offers two global defaulting mechanisms:
pubset default format
user-specific default storage class
Pubset default format
In analogy to SF pubsets whose format is implicitly defined by the format of their disks, a default format for SM pubsets is determined by systems support at pubset generation. This default format may change during a pubset session as a result of reconfiguration measures taken by systems support.
Information about the pubset default format can be obtained via the commands SHOW-PUBSET-DEFINITION-FILE and SHOW-PUBSET-FILE-SERVICES PUBSET=..., FILE-FORMAT=*BY-PUBSET-DEFAULT, or by means of the STAM macro.
User-specific default storage class
Systems support can define a specific default storage class for each user on each SM pubset. The FILE-PREFORMAT value entered in this storage class (or, with *BY-PUBSET-DEFAULT, the resulting value) is copied to the file's catalog ID under certain conditions (see below).
The command SHOW-USER-ATTRIBUTES PUBSET=...,INFORMATION=*PUBSET-ATTRIBUTES indicates whether or not a user-specific default storage class exists. The command SHOW-STORAGE-CLASS supplies information about the contents of the storage class.
The ways in which the system determines the preformat are the complete direct attribute specification or the defaulting mechanisms:
Complete direct attribute specification
In this case an unequivocal preformat can be deduced from the user's attribute specification. This is true in the following cases:
Specified attributes
Resulting
FILE-PREFORMATFILE-PREFORMAT=K
K
FILE-PREFORMAT=NK2
NK2
FILE-PREFORMAT=NK4
NK4
BLKCTRL=PAMKEY
K
BLKCTRL=DATA2K
NK2
BLKCTRL=DATA4K
NK4
BLKCTRL=DATA / NO and
BLKSIZE=(STD,n)
(n = odd)NK2
BLKCTRL=DATA / NO and
BLKSIZE=(STD,n)
(n = even)NK4
Defaulting mechanisms
Where direct attribute specification is not complete, the preformat is determined via various defaulting mechanisms. The sequence in which the various mechanisms are employed by the system is shown in the table below:
User specifications
Resulting FILE-PREFORMAT
1.
Physical allocation
According to volume set characteristic1)
2.
Storage class specified with FILE-PREFORMAT not equal *BY-PUBSET-DEFAULT
According to preformat in the specified storage class 1)
3.
No specification of any storage-class-relevant attributes 2) and a default storage class exists with FILE-PREFORMAT not equal *BY-PUBSET-DEFAULT
According to preformat in the default storage class 1)
4.
Other
According to pubset default format 1)
1)
If the resultant preformat is K and *DATA or *NO is specified for BLKCTRL, NK2 isset instead of K. 2)
The following are storage class-relevant attribute specifications: Command interface (CREATE-FILE/MODIFY-FILE-ATTRIBUTES): Specification of *NONE for STORAGE-CLASS, or of one of the operands AVAILABILITY, DEVICE-TYPE, DISK-WRITE, VOLUME, VOLUME-SET, WORK-FILE, PERFORMANCE or USAGE
Macro interface (FILE): for any of the operands IOPERF or IOUSAGE, or a value other than of *NONE for STOCLAS, or of any of the operands AVAIL, DEVICE, DISKWR, VOLUME, VOLSET or WORKFIL.