IBM Support



You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description


Local fix

  • n/a

Problem summary

  • ****************************************************************
    * USERS AFFECTED: 01.RDz auditor                               *
    *                 02.RDz Users                                 *
    *                 03.RDz USS Users who upload executable       *
    *                    files                                     *
    *                 04.RDz Users                                 *
    *                 05.RDz Users                                 *
    * PROBLEM DESCRIPTION: 01.Enhancement to add audit logging     *
    *                         for z/OS UNIX based file actions.    *
    *                      02.Some problems with server memory     *
    *                         and handling of lots of USS          *
    *                         commands                             *
    *                      03.USS upload of existing execute       *
    *                         permission file can result in        *
    *                         duplication when using backups.      *
    *                      04.Problems with set USS Shell          *
    *                         environment variables and memory     *
    *                         cleanup                              *
    *                      05.Problems with a logged exception on  *
    *                         shutdown and missing blank lines in  *
    *                         USS shells                           *
    * RECOMMENDATION:                                              *
    01.Enhancement to add audit logging for z/OS UNIX based file
    02.Server memory management and USS command performance need to
       be improved.
    03.If server backup files are used and an executable USS file
       gets uploaded to replace a previous one, the contents can be
    04.When there a large number of USS shells (and commands) it is
       possible for sent environment variables to get ignored. It
       is also possible for USS shells (and commands) to not have
       their memory cleaned up properly.
    05.On shutdown an NPE is logged via the DataElementRemover.
       Better null checking is needed there. When running USS
       shells it's possible for blank lines to be ignored.

Problem conclusion

  • 01.This change involved adding logAudit() interfaces to
       ServerLogger and UniversalServerUtilities along with calls
       to the logAudit() methods from places in the USS server
       function that access and/or modify files. This was added so
       that customers requiring audit information about accessed
       files have a means of accumulating that data. This should
       have no impact on those who don't need audit logging but,
       for those who do, it provides new function.
    02.There are a number of improvements to the spiriting
       mechanism and some miners that use it. The changes include a
       means of ensuring that the server doesn't spirit the same
       elements multiple times and that recently used elements have
       their spiriting deferred. Command elements are spirited
       differently in that they get updated directly rather than
       via their parent (the log). The XMLparser has changed to not
       set the parent of a newly arrived element if its parent will
       be the document root. There are changes to the UpdateHandler
       so that the client DataStore now unmaps (but doesn't delete)
       spirited elements; unused elements can be freed on the
       client. The USS command miner and file system miner have
       been updated to spirit some elements that had previously
       stuck around. These updates should not effect any basic
       functionality but, over the course of a session, they should
       improve memory consumption. The USS CommandMiner no longer
       runs an init thread to change the prompt for C_COMMAND
       commands. While this is needed for C_SHELL commands, there
       is no need for simple commands. Also duplicate
       cleanupThread() calls are avoided. The USS EnvironmentMiner
       has been updated to use spiriting rather than brute force
       deletions to clear out old environments. This makes the
       server more robust when working with large numbers of
       commands over long periods of time. The USS
       UniversalFileSystemMiner supports a new C_QUERY_HIERARCHY
       command allowing users to query all the files and
       sub-folders under a directory. This was added to improve the
       performance of certain scenarios for RDAL projects. This has
       no impact on RDz. The USS CommandMiner was updated to spirit
       elements (without a refresh to the client) while a shell is
       running, as opposed to only at its completion. This helps
       keep server memory down in cases where long running shells
       produce a lot of output.
    03.The USS ByteStreamHandler had a bug that caused duplicate
       data when an executable file was uploaded over a previous
       one (when the backup files setting is active). A fix was
       provided for that so that users who upload executable files
       (when the backup files setting is active) won't run into
       this anymore.
    04.There were couple problems with the EnvironmentMiner and the
       CommandMinerThread. First, it is possible for the
       EnvironmentMiner.handleSetEnvironment() to complete after
       the corresponding CommandMinerThread.getEnvironment() is
       called. In such cases, the project-specific environment
       would be missing. To resolve that we synchronize on the
       subject when setting and getting the environment. In the
       EnvironmentMiner we're assuming a project environment is
       named like this: subject.getName() + ".env". But, a while
       back, a project environment sent to the server changed to
       use subject.getId() instead (so that it was absolutely
       unique). As a result, the EnvironmentMiner would never find
       any previous environment associated with a given project
       element. In CommandMinerThread.getEnvironment() we were
       trying to find the subject environment by looking for the
       "inhabits" relationship of the subject and it's ancestors.
       We can more easily get that by simply looking for the
       environment associated with the subject's id (since we name
       it based on the subject id). In
       CommandMinerThread.cleanup(), the parent of a project
       environment was getting spirited - instead the project
       environment should just be removed from its parent and only
       the environment should be spirited. In addition to the USS
       shell/command stuff, the generic C_SET command gets cleaned
       up after completion.
    05.The NPE that gets logged during shutdown can be avoided by
       checking for null. Furthermore, elements that are queued for
       spiriting are now removed without checking for recent use on
       the log. USS shell handling needs to account for lines that
       have no content so that they can be displayed to the user
       and other consumers.

Temporary fix


APAR Information

  • APAR number


  • Reported component name


  • Reported component ID


  • Reported release


  • Status


  • PE




  • Special Attention


  • Submitted date


  • Closed date


  • Last modified date


  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:



Fix information

  • Fixed component name


  • Fixed component ID


Applicable component levels

  • R900 PSY UI13095

       UP13/12/12 I 1000

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

Document information

More support for: Rational Developer for System z

Software version: 9.0

Reference #: PM94620

Modified date: 12 December 2013