This document describes what to do if you are getting the message "N26408 UAMS DATA SET IS FULL" when trying to add users to UAMS.
When getting message "N26408 UAMS DATA SET IS FULL" when you try to update UAMS by adding a user a possible cause of this problem might that you use VSAM SHAREOPTION(4,4) instead of SHAREOPTION(3,3).
VSAM SHAREOPTION(4,4) has the advantage that data integrity is preserved for multiple system processing.
To preserve data integrity VSAM will retrieve a fresh copy of the CI that contains the record, even when a copy is in storage, and when performing the write, the first system/user to issue the write will get exclusive control over the dataset until the write operation is complete - hence data integrity is preserved. Of course because this option always gets a fresh copy of a record then the I/O utilization is higher than using 3,3 where it reads and writes records to a storage buffer to limit the amount of I/O required.
However this option also has a limitation, VSAM does not allow a file using this SHAREOPTION to perform a CA split, (or a CI split that would in turn cause a CA split). This is because when a CA split takes place a new CA is acquired from the end of the data set. This is not allowed as it would change the High Used RBA (the indicator that marks the end of the data set). If this were allowed to happen, one system could change the High Used RBA and the other systems accessing the file would not be aware of it. This means that it is possible that updates or additions to the file may be rejected and a file full indication is given.
So there are two solutions for this problem:
- Switch to SHAREOPTIONS(3,3)
- Keep SHAREOPTIONS(4,4). Here you create a new UAMS-file, add user ZZZZZZZZ (or better 99999999 which has an even higher EBCDIC-Encoding), then REPRO the old UAMS into this new one. As there will be no userid with a higher key, you will not receive this problem again.