## Installation instructions for fix UK51499 for IBM Rational Developer for System z v75 (FMID HHOP750)

The fix is shipped as file IBM.HHOP750.UK51499

The following fixes are prerequisites for this fix:

- UK43840
- UK45253

### Overview of the installation steps

Steps required to install the fix:

1. Allocate host data sets for the fix.
2. Upload the fix from your workstation to z/OS.
3. SMP/E hold information for the fix.
4. Perform SMP/E RECEIVE and APPLY for the fix.

### Allocate host data sets for the fix

A sequential data set must be allocated on the z/OS system to receive the fix that you will upload from your workstation. You can do this by submitting the job below. Add a job card and modify the parameters to meet your site's requirements before submitting.

    //ALLOC    EXEC PGM=IEFBR14
    //*
    //UK51499    DD DSN=hlq.IBM.HHOP750.UK51499,
    //            DISP=(NEW,CATLG,DELETE),
    //            DSORG=PS,
    //            RECFM=FB,
    //            LRECL=80,
    //            UNIT=SYSALLDA,
    //*            VOL=SER=volser,
    //*            BLKSIZE=6160,
    //            SPACE=(TRK,(92,10))
    //*

### Upload the fix from your workstation to z/OS

Upload the file in binary format from your workstation to the z/OS data set. On a Windows system, you can use FTP from a command prompt to upload the file. In the sample dialog shown below, commands or other information entered by the user are in bold, and the following values are assumed:

User enters: | Values
--- | ---
`mvsaddr` | TC P/IP address of the z/OS system
`tsouid` | Your TSO user ID
`tsopw` | Your TSO password
`d:` | Your drive containing the fix files
`hlq` | High-level qualifier that you used for the data set that you allocated in the job above

    C:\>ftp mvsaddr
    Connected to mvsaddr.
    220-FTPD1 IBM FTP CS %version% at mvsaddr, %time% on %date%.
    220 Connection will close if idle for more than 60 minutes.

    User (mvsaddr:(none)): tsouid
    331 Send password please.

    Password: tsopw
    230 tsouid is logged on.  Working directory is "tsouid.".

    ftp> cd ..
    250 "" is the working directory name prefix.

    ftp> cd hlq
    250 "hlq." is the working directory name prefix.

    ftp> binary
    200 Representation type is Image

    ftp> put d:\IBM.HHOP750.UK51499
    200 Port request OK.
    125 Storing data set hlq.IBM.HHOP750.UK51499
    250 Transfer completed successfully
    5097280 bytes sent in 0.28 seconds

    ftp> quit
    221 Quit command received. Goodbye.

### SMP/E hold information for the fix

    ++ HOLD(UK51499) SYS FMID(HHOP750) REASON(ACTION) DATE(09301)
       COMMENT
        (****************************************************************
         * Affected function: error feedback                            *
         ****************************************************************
         * Description: B37 space abends during compile                 *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: SFEKPROC(FEKERRF)                                      *
         ****************************************************************

         B37 space abends for error feedback files can occur during
         compiles or remote syntax checks of very large source files.

         The high level qualifier for the 4 error feedback files is
         defined by the client in the "Data Set Qualifier for Compile
         Errors" property.

         The allocation of the 4 error feedback files is done by REXX
         exec FEK.SFEKPROC(FEKERRF), where FEK represents the high level
         qualifier used during the SMP/E install of this product.

         You can adjust the space allocation within FEKERRF, which is
         "SPACE(200,40) TRACKS" by default, to match your needs.

         Do keep in mind that these allocation parameters are used for
         each user requesting a syntax check, so it is advised to limit
         the size of the primary allocation and allow for growth with
         the secondary allocation.
         ****************************************************************
         * Affected function: JES Job Monitor                           *
         ****************************************************************
         * Description: replace FEJJCNFG configuration file             *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: SFEKSAMP(FEJJCNFG)                                     *
         ****************************************************************
         This fix replaces the SFEKSAMP(FEJJCNFG) configuration file
         without any updates so that it can supersede PTF UK45253.

         This member is the source for the customized
         FEK.#CUST.PARMLIB(FEJJCNFG).

         ****************************************************************
         * Affected function: problem determination                     *
         ****************************************************************
         * Description: save FEKLOGS before applying service            *
         ****************************************************************
         * Timing: pre-APPLY                                            *
         ****************************************************************
         * Part: SFEKSAMP(FEKLOGS)                                      *
         ****************************************************************
         This fix updates the log gathering JCL, FEKLOGS.
         If you have customized this file, it is advised to back it
         up before proceeding with SMP/E Apply.

         ****************************************************************
         * Affected function: problem determination                     *
         ****************************************************************
         * Description: updated FEKLOGS                                 *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: SFEKSAMP(FEKLOGS)                                      *
         ****************************************************************
         FEKLOGS, the log & setup gathering JCL, has been updated to
         also collect ISPF's Client Gateway logs.
         If you have customized this member, you must redo your
         customizations based upon backup you created before applying
         this fix.
         It is advised to customize a copy of the sample JCL,
         SFEKSAMP(FEKLOGS). This to avoid losing your work when service
         updates the sample JCL.

         ****************************************************************
         * Affected function: applying service                          *
         ****************************************************************
         * Description: update active configuration files               *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: SFEKSAMP(FEKSET03)                                     *
         ****************************************************************
         This fix introduces a new sample member, SFEKSAMP(FEKSET03).

         JCL FEKSET03 can be used to update the active rsed.envvars and
         ssl.properties configuration files with the new directives that
         are added by this fix.

         ****************************************************************
         * Affected function: client logon                              *
         ****************************************************************
         * Description: control number of logons                        *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: /etc/rdz/rsed.envvars                                  *
         *       [/usr/lpp/rdz/samples/rsed.envvars]                    *
         ****************************************************************
         This fix updates the sample rsed.envvars by adding the
         following optional directive:

         #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dsingle.logon=false"

           Allow a user ID to log on multiple times. The default is
           false. Uncomment and specify true to allow a user ID to log
           on multiple times to a single RSE daemon.

           Note:
           A second logon attept will cause the first one to be
           cancelled by the host if this directive is not active and set
           to false. This cancel will be accompanied by console message
           FEK210I.

         Add this directive to your active rsed.envvars (by default
         located in /etc/rdz) if you want to use it.

         Sample job SFEKSAMP(FEKSET03) can do this update, among others,
         for you. FEKSET03 is provided as part of this fix.

         ****************************************************************
         * Affected function: console message                           *
         ****************************************************************
         * Description: new message, FEK210I                            *
         ****************************************************************
         * Timing: n/a                                                  *
         ****************************************************************
         * Part: n/a                                                    *
         ****************************************************************
         This fix introduces a new console message.

         FEK210I = {0} canceled owing to duplicate logon

         The message is issued when the host cancels an existing session
         because of a new logon request for that user ID.
         ****************************************************************
         * Affected function: Application Deployment Manager            *
         ****************************************************************
         * Description: updated ADNSMSGH                                *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: FEK.#CUST.COBOL(ADNSMSGH)                              *
         *       [SFEKSAMP(ADNSMSGH)]                                   *
         ****************************************************************
         This fix updates the ADNSMSGH sample pipeline message handler
         source code.
         If you have customized the member, created by FEKSETUP,
         FEK.#CUST.COBOL(ADNSMSGH), you must redo your customizations
         based upon the differences with the updated sample,
         SFEKSAMP(ADNSMSGH).
         ****************************************************************
         * Affected function: client log on                             *
         ****************************************************************
         * Description: add support for file systems created by         *
         *              z/OS UNIX automount                             *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: /etc/rdz/rsed.envvars                                  *
         *       [/usr/lpp/rdz/samples/rsed.envvars]                    *
         ****************************************************************
         This fix updates the sample rsed.envvars by adding the
         following optional directive:

         #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.automount=true"

           Support home directories created by z/OS UNIX automount. The
           default is false. Uncomment and specify true to ensure that
           z/OS UNIX automount uses the client user ID as owner of the
           directory.

           Note:
           z/OS UNIX automount uses the user ID of the process that
           invoked the service when creating a file system. If this
           option is disabled, this process is the RSE thread pool server
           (user ID STCRSE). If this option is enabled, a new, temporary,
           process is created using the client user ID before invoking
           the service.

         Add this directive to your active rsed.envvars (by default
         located in /etc/rdz) if you want to use it.

         Sample job SFEKSAMP(FEKSET03) can do this update, among others,
         for you. FEKSET03 is provided as part of this fix.
         ****************************************************************
         * Affected function: CARMA                                     *
         ****************************************************************
         * Description: save carma.startup.rex before applying service  *
         ****************************************************************
         * Timing: pre-APPLY                                            *
         ****************************************************************
         * Part: /usr/lpp/rdz/bin/carma.startup.rex                     *
         ****************************************************************
         This fix updates the CARMA startup REXX, carma.startup.rex.
         If you have customized this file, it is advised to back it
         up before proceeding with SMP/E Apply.

         ****************************************************************
         * Affected function: CARMA                                     *
         ****************************************************************
         * Description: updated carma.startup.rex                       *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: /usr/lpp/rdz/bin/carma.startup.rex                     *
         ****************************************************************
         This fix updates the CARMA startup REXX, carma.startup.rex.
         If you have customized this file, you must redo your
         customizations based upon backup you created before applying
         this fix.
         It is advised to customize a copy of the default startup REXX,
         /usr/lpp/rdz/bin/carma.startup.rex, and point
         startup.script.name in CRASRV.properties to this copy. This to
         avoid losing your work when service updates the default REXX.
         ****************************************************************
         * Affected function: RSE thread pool logging                   *
         ****************************************************************
         * Description: capture stdout/stderr of RSE thread pools       *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: /etc/rdz/rsed.envvars                                  *
         *       [/usr/lpp/rdz/samples/rsed.envvars]                    *
         ****************************************************************
         This fix updates the sample rsed.envvars by adding the
         following optional directive:

         #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Denable.standard.log=true"

           Write the stdout and stderr streams of the thread pool(s)
           to a log file. The default is false. Uncomment and specify
           true to save the stdout and stderr streams. The resulting
           log files are located in the directory referenced by the
           daemon.log directive.

           Note:
           There are no user-specific stdout.log and stderr.log log
           files when the enable.standard.log directive is active.
           The user-specific data is now written to the matching RSE
           thread pool stream.

         Add this directive to your active rsed.envvars (by default
         located in /etc/rdz) if you want to use it.

         Sample job SFEKSAMP(FEKSET03) can do this update, among others,
         for you. FEKSET03 is provided as part of this fix.

         This fix also introduces a new operator command:

         MODIFY RSED,APPL=RSESTANDARDLOG ON|OFF

           Disable (OFF) or (re)enable (ON) updating the log files
           holding the stdout and stderr streams of the thread
           pools. The startup default is defined with the
           enable.standard.log directive in rsed.envvars.

         The logs files that can be created by this fix are named:
         o stderr.*.log - RSE thread pool standard error stream
         o stdout.*.log - RSE thread pool standard output stream
         The * is a sequential number representing a specific
         thread pool.

         The log files are located in the same location as
         rsedaemon.log and rseserver.log.

         This fix also updates the output of an operator command:

         MODIFY RSED,APPL=DISPLAY PROCESS[,CLEANUP]

           Display the RSE thread pool processes. There can be multiple
           processes, which are used for load balancing the connected
           users.

           ProcessId() Memory Usage(%)
            Clients() Order()

           Note:
           o  can be used in process specific z/OS UNIX
             operator commands.
           o Each process has its own Java heap, whose size can be set
             in rsed.envvars.
           o  is a sequential number that indicates the
             order that the thread pools were started. The number
             corresponds to the number used in the filename of the
             stderr.*.log and stdout.*.log files.
         ****************************************************************
         * Affected function: RSE operator commands                     *
         ****************************************************************
         * Description: new operator command                            *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part:                                                        *
         ****************************************************************
         This fix introduces the CLEANUP option to the DISPLAY PROCESS
         operator command:

         MODIFY RSED,APPL=DISPLAY PROCESS[,CLEANUP]

         When used, the CLEANUP option will remove all thread pools that
         are in an error status (*severe error* and *killed process*).

         ****************************************************************
         * Affected function: host based user logs                      *
         ****************************************************************
         * Description: specify location of user log                    *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: /etc/rdz/rsed.envvars                                  *
         *       [/usr/lpp/rdz/samples/rsed.envvars]                    *
         ****************************************************************
         This fix updates the sample rsed.envvars by adding the
         following optional directive:

         #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -Duser.log=/tmp/rdz"

           Directory leading to the user-specific logs. Uncomment and
           change to enforce the desired location. If this directive is
           commented out (this is the default), the home directory of the
           client user ID will be used. The home directory is defined in
           the OMVS security segment of the user ID.

           Notes:
           1. The complete path to the user logs is
              userlog/dstorelog/$LOGNAME/, where userlog is the value of
              the user.log directive, dstorelog is the value of the
              DSTORE_LOG_DIRECTORY directive and $LOGNAME is the client's
              user ID in uppercase.
           2. Ensure that the permission bits for userlog/dstorelog are
              set so that each client can create $LOGNAME.

         Add this directive to your active rsed.envvars (by default
         located in /etc/rdz) if you want to use it.

         Sample job SFEKSAMP(FEKSET03) can do this update, among others,
         for you. FEKSET03 is provided as part of this fix.
         ****************************************************************
         * Affected function: host based user logs                      *
         ****************************************************************
         * Description: specify location of user log                    *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: /etc/rdz/rsed.envvars                                  *
         *       [/usr/lpp/rdz/samples/rsed.envvars]                    *
         ****************************************************************
         This fix updates the sample rsed.envvars by adding the
         following optional directive:

         #_RSE_JAVAOPTS="$_RSE_JAVAOPTS -DDSTORE_LOG_DIRECTORY="

           This directory is appended to the path specified in the
           user.log directive. Together they create the path leading to
           the user-specific logs. Uncomment and change to enforce the
           desired location. If this directive is commented out (this is
           the default), .eclipse/RSE/ will be used.

           Notes:
            1. The complete path to the user logs is
               userlog/dstorelog/$LOGNAME/, where userlog is the value
               of the user.log directive, dstorelog is the value of the
               DSTORE_LOG_DIRECTORY directive, and $LOGNAME is the
               client's user ID in uppercase.
            2. The directory specified here is relative to the directory
               specified in user.log, and thus may not start with a
               forward slash (/).
            3. Ensure that the permission bits for userlog/dstorelog are
               set so that each client can create $LOGNAME.

         Add this directive to your active rsed.envvars (by default
         located in /etc/rdz) if you want to use it.

         Sample job SFEKSAMP(FEKSET03) can do this update, among others,
         for you. FEKSET03 is provided as part of this fix.
         ****************************************************************
         * Affected function: SSL encrypted communication               *
         ****************************************************************
         * Description: allow storing private key in ICSF               *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: /usr/lpp/java/J5.0/lib/security/java.security          *
         *       /etc/rdz/ssl.properties                                *
         *       [/usr/lpp/rdz/samples/ssl.properties]                  *
         ****************************************************************
         This fix allows the usage of the JCECCARACFKS key store for
         RSE server, which places the private keys in ICSF.
         In order to use this key store type, you must update
         * ssl.properties (by default located in /etc/rdz)
         server_keystore_type=JCECCARACFKS

           Note:
           Sample job SFEKSAMP(FEKSET03) can do this update, among
           others, for you. FEKSET03 is provided as part of this fix.

         * /usr/lpp/java/J5.0/lib/security/java.security
           (update must be on the first, non-comment line, adjust the
           array numbers for existing lines)
         security.provider.1=com.ibm.crypto.hdwrCCA.provider.IBMJCECCA

           Note:
           This update is for an IBM z/OS Java configuration file. The
           actual location may vary, depending on your system setup.
         ****************************************************************
         * Affected function: SSL encrypted communication               *
         ****************************************************************
         * Description: allow specifying certificate label              *
         ****************************************************************
         * Timing: post-APPLY                                           *
         ****************************************************************
         * Part: /etc/rdz/ssl.properties                                *
         *       [/usr/lpp/rdz/samples/ssl.properties]                  *
         ****************************************************************
         This fix updates the sample ssl.properties by adding the
         following optional directive:

         #server_keystore_label=

           The certificate label used in the key ring or key store. The
           default is the first valid certificate encountered. Uncomment
           and customize this directive if SSL is enabled and you are
           not using the default security certificate.

         Add this directive to your active ssl.properties (by default
         located in /etc/rdz) if you want to use it.

         Sample job SFEKSAMP(FEKSET03) can do this update, among others,
         for you. FEKSET03 is provided as part of this fix.

         ****************************************************************
         * Affected function: client logon                              *
         ****************************************************************
         * Description: stricter security checking                      *
         ****************************************************************
         * Timing: pre-APPLY                                            *
         ****************************************************************
         * Part: n/a                                                    *
         ****************************************************************
         This fix tightens the Developer for System z security.
         If PassTickets can not be generated, or the user does not have
         explicit READ access to the FEKAPPL profile in the APPL class,
         the connection will fail.

         Verify your security settings, as documented in the Host
         Configuration Guide (SC23-7658-02), Appendix D - Security,
         Section PassTicket Support (page 114).).

### Perform SMP/E RECEIVE and APPLY for the fix

SMP/E RECEIVE and APPLY the fix.