The CA Datacom CXX (a.k.a. Control Directory) acts as a registry for the entire Datacom DBMS. As such, it contains numerous pieces of information about not only each Database and its sub-structure, but also significant attribute information about each Database, Area and Table.
One of the significant items stored there is the z/OS Data Set Name (DSN) that is associated with each Index Area and Data Area(s). The DSN is stored in CXX when the area has been initialized (running a DBUTLTY INIT function) or when using a DBUTLTY CXXMAINT ALTER DSN function to dynamically change it. These DSNs are visible at the bottom of each page from a DBUTLTY CXX report which is generated using a REPORT AREA=CXX[,DBID=nnnnn] control card. The report displays not only the DSN, but also the VOLSER(s) that this DSN may be spread across even though the VOLSERs themselves are not stored within the CXX. These VOLSER(s) are obtained at report generation time by probing the OS catalog using each DSN.
Whenever a request is received by the MUF or DBUTLTY, the CXX is probed for the requested DBID number and the three characters Area name in order to obtain the associated DSN. Datacom then issues an IBM DYNALLOC call requesting the DSN be dynamically allocated to the MUF or DBUTLTY. If the DYNALLOC was not successful for some reason, IBM z/OS will return to Datacom an associated error from their DYNALLOC (or SVC99) request. Since these errors are subject to change from release to release of the operating system or, the explanation for these errors may get moved to a different manual, Datacom has always opted to not publish the error code meanings.
The DB01401E message has the following format:
DB01401E MVS DYNAMIC ALLOCATION ERROR, DDNAME=xxxxxx, R15=n, ERROR=nnn, INFO=nnnn
the ERROR= value is obtained from DYNALLOC S99ERROR (Error Reason Code)
the INFO= value is obtained from DYNALLOC S99INFO (Information Reason Codes)
The following is a list of common Error Reason Codes:
- 0210 - Requested data set unavailable. The dataset is allocated to another job and it's usage attribute conflicts with this request.
- 0214 - Device(s) not available.
- 0218 - Specified volume or an acceptable volume is not mounted, and user does not have volume mounting authorization through the DYNALLOC request.
- 0238 - Space unavailable in task input output table (TIOT).
- 0450 - Request caused the limit of concurrent allocations to be exceeded.
- 1708, 1718, 172C - LOCATE error. Cannot find dsname in catalog, volume, etc.
For complete explanation of Reason Codes, you can read the “Interpreting DYNALLOC return codes” section of the “z/OS MVS Programming: Authorized Assembler Services Guide” manual.