The DBH and utility routines generally check whether the files used - in particular the database files - are unique in all attached pubsets. You can use a UDS/SQL pubset declaration to restrict this check to selected pubsets.
Restricting the requirement that file names should be unique provides you with greater flexibility when organizing multiple UDS/SQL applications on one computer. Repercussions on the operation of UDS/SQL applications caused by a change to the storage organization - for example in the active use of state-of-the-art storage technologies based on clones and snaps - can be avoided.
You can optionally provide the UDS/SQL pubset declaration in a pubset declaration job variable which the DBH and the utility routines access via the predefined job variable link name UDSPS01.
If no UDS/SQL pubset declaration is available when the program starts, existing database files, system files and work files of the utility routines are searched for in the file catalogs of each locally-available pubset in which the user ID of the executing routine is entered as having access permission. This standard behavior corresponds to a UDS/SQL pubset declaration "*". Also if the "job variables" product is not available, UDS/SQL behaves as if a UDS/SQL pubset declaration "*" were present.
Syntax of the UDS/SQL pubset declaration
The UDS/SQL pubset declaration in the pubset declaration job variable consists of a sequence of catid groups, each of which comprises an FSTAT-compliant catalog specification and separated from each other by one or more blanks.
The syntax of the UDS/SQL pubset declaration is therefore as follows:
catid-group[ catid-group]...
Specifies one or more catid groups (1- to 4-character catalog IDs without ":") which may contain the wildcards listed in table 22 below:
* | Replaces any string, even an empty one. An * in the first position must be duplicated if the * is followed by further characters and the string entered does not contain at least one more wildcard. |
/ | Replaces precisely one arbitrary character. |
<sx:sy> | Replaces a string for which the following applies:
|
<s1,...> | Replaces all strings which one of the character combinations specified with s matches. s can also be the empty string. Each s string can also be the range specification "sx:sy". |
-s | Replaces all strings which do not match the specified string s. The minus sign may only be used at the beginning of the string. This specification cannot be combined with other specifications in a UDS/SQL pubset declaration. |
Table 22: Wildcards for catalog IDs in the UDS/SQL pubset declaration
Up to 100 catid groups may be specified.
A catid group may be up to 26 characters long.
Lowercase letters are treated like the corresponding uppercase letters.
Catalog IDs which do not exist or are not available may be specified.
Multiple specification of catalog IDs is also possible.
Examples
Specification | Stands for the following catalog IDs |
A001 | A001 |
X/C | XAC, XBC, XCC, ..., XZC, X0C, ..., X9C |
5* | 5, 5A, ..., 59, 5AA, ..., 599, 5AAA, 5999 |
<C015:C025> | C015, C016, ..., C024, C025 |
<BE:DC> | BE, BF, BG, ..., B9, CA, ..., C9, DA, ..., DC |
<D015:D025,F015:F045> | D015, D016, ..., D024, D025, F015, F016, ..., F044, F045 |
<A:D;BE:DC> | A, B, C, D, BE, BF, BG, ..., B9, CA, ..., C9, DA, ..., DC |
-5* | All (1- to 4-character) catalog IDs which do not begin with 5 (exclusion condition). |
Table 23: Examples of catalog IDs in the UDS/SQL pubset declaration
Command string for defining and assigning a UDS/SQL pubset declaration:
/CREATE-JV JV-NAME=UDS-PUB-DECL /MODIFY-JV JV-CONTENTS=UDS-PUB-DECL, - / SET-VALUE=’A001 B001 <C015:C025> <D015:D025,F015:F045> 5*’ /SET-JV-LINK LINK-NAME=UDSPS01,JV-NAME=UDS-PUB-DECL
Command string for defining and assigning a UDS/SQL pubset declaration with exclusion condition:
/CREATE-JV JV-NAME=UDS-PUB-DECL /MODIFY-JV JV-CONTENTS=UDS-PUB-DECL,SET-VALUE=’-5*’ /SET-JV-LINK LINK-NAME=UDSPS01,JV-NAME=UDS-PUB-DECL
The Default Public Volume Set of the execution user ID is always implicitly taken into account by UDS/SQL and consequently does not need to be included in the UDS/SQL pubset declaration. It is not possible to exclude the Default Public Volume Set of the execution user ID from being used.
Assignment of a UDS/SQL pubset declaration which only contains blanks is permissible; only the Default Public Volume Set of the execution user ID is taken into account.
When files on private disk are used, all the pubsets whose catalogs manage files on private disk which are required for operation must be contained in the UDS/SQL pubset declaration.
Database files (realms, ALOG files, HASHLIB, COSSD), system files (SLF, temporary realms, RLOG files, DB status files) and the work files of the utility routines are included in the uniqueness check.
The DBH’s load parameter files, the library files for the UDS/SQL program sections and data modules which need to be loaded or loaded dynamically (SSITAB, PLEX) and the distribution tables for UDS-D are not included in the uniqueness check.
In the case of load parameter PP DISTABLE
, DAL &ADD DISTRIBUTION
and DAL &SAVE DISTRIBUTION
you can specify the catalog ID for the file concerned without there being any repercussions on the UDS/SQL pubset declaration.
The UDS/SQL pubset declaration is checked by the DBH or the utility routine concerned when initialization takes place. The DAL NEW PUBSETS also causes the DBH to check a newly allocated UDS/SQL pubset declaration. Faulty assignments result in the session or utility routine aborting when it starts. When the UDS/SQL pubset declaration is modified incorrectly using DAL, it is rejected and the existing UDS/SQL pubset declaration is used.
Faulty assignments can be caused by the following:
A non-existent or inaccessible job variable is assigned
(DBH message UDS0752, utility routine messages 0048 and 0049).The catid groups were specified with syntax errors
(DBH message UDS0748, utility routine message 0045).An error was detected in the syntax check of a catid group
(DBH message UDS0749 with insert CMDWCC).Using a catid group in the catalog access during the syntax check leads to an error (DBH message
UDS0749
with InsertFSTAT
, utility routine message 0055).
The UDS/SQL pubset declaration must be compatible with the volume allocations for RLOG and ALOG files. The DBH checks this compatibility. Actions which lead to incompatible volume allocation are rejected.