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

The fix is shipped as file IBM.HHOP750.UK43840

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
//*
//UK43840  DD DSN=hlq.IBM.HHOP750.UK43840,
//            DISP=(NEW,CATLG,DELETE),
//            DSORG=PS,
//            RECFM=FB,
//            LRECL=80,
//            UNIT=SYSALLDA,
//*            VOL=SER=volser,
//*            BLKSIZE=6160,
//            SPACE=(TRK,(50,5))
//*

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.UK43840
200 Port request OK.
125 Storing data set hlq.IBM.HHOP750.UK43840
250 Transfer completed successfully
ftp: 2769040 bytes sent in 0.23Seconds 

ftp> quit
221 Quit command received. Goodbye.

SMP/E hold information for the fix

++ HOLD(UK43840) SYS FMID(HHOP750) REASON(DOC) DATE(09037)
   COMMENT
    (****************************************************************
     * Affected function: ISPF                                      *
     ****************************************************************
     * Description: important ISPF maintenance                      *
     ****************************************************************
     * Timing: n/a                                                  *
     ****************************************************************
     * Part: n/a                                                    *
     ****************************************************************

     The fix for ISPF APAR OA27174 is important for RDz, as it
     resolves a problem that can abend the RSE server.
     This APAR pre-req's ISPF APAR OA27190.
     These ISPF APAR's are not listed in the current program
     directory for RDz (GI11-8298-01).

     APAR OA27174 - ABEND U4093 OR U4087 RUNNING TSO COMMANDS VIA THE
                    ISPF CLIENT GATEWAY
     PTF
     z/OS 1.8  UA45242
     z/OS 1.9  UA45332
     z/OS 1.10 UA45333

     APAR OA27190 - IMW0229E MESSAGE OCCURS WHEN SEARCHING FOR
                    IVP.HTML/CGI PROGRAMS.
     PTF
     z/OS 1.8  UA45030
     z/OS 1.9  UA45031
     z/OS 1.10 UA45032

     ****************************************************************
     * Affected function: File Manager Integration (FMI)            *
     ****************************************************************
     * Description: FMIEXT.properties update                        *
     ****************************************************************
     * Timing: post-APPLY                                           *
     ****************************************************************
     * Part: /usr/lpp/rdz/samples/FMIEXT.properties                 *
     ****************************************************************
     The sample FMIEXT.properties properties file has been updated
     to change the default port numbers used.

     Customers who use both the FM listener and FM batch method to
     access IBM File Manager can run into a port conflict using the
     original default port numbers.
     1960: default FM listener port
     1961: default FM batch start port
    ).
++ HOLD(UK43840) SYS FMID(HHOP750) REASON(ACTION) DATE(09037)
   COMMENT
    (****************************************************************
     * Affected function: JES Job Monitor                           *
     ****************************************************************
     * Description: embedded LE options                             *
     ****************************************************************
     * Timing: post-APPLY                                           *
     ****************************************************************
     * Part: SFEKSAMP(FEJJJCL)                                      *
     ****************************************************************
     This maintenance adds embedded LE options to the JES Job
     Monitor load module;
     POSIX(ON),ALL31(ON),STACK(,,ANY),THREADSTACK(,,,ANY)

     If need be, these options can be changed by providing alternate
     values in the startup JCL, as shown in the updated sample JCL,
     FEK.SFEKSAMP(FEJJJCL).

     //*
     //* JES JOB MONITOR
     //*
     //JMON     PROC PRM=,               * PRM='-TV' TO START TRACING
     //            LEPRM='RPTOPTS(ON)',
     //            HLQ=FEK,
     //            CFG=FEK.#CUST.PARMLIB(FEJJCNFG)
     //*
     //JMON     EXEC PGM=FEJJMON,REGION=0M,TIME=NOLIMIT,
     //         PARM=('&LEPRM,ENVAR("_CEE_ENVFILE=DD:ENVIRON")/&PRM')
     //STEPLIB  DD DISP=SHR,DSN=&HLQ..SFEKAUTH
     //ENVIRON  DD DISP=SHR,DSN=&CFG
     //SYSPRINT DD SYSOUT=*
     //SYSOUT   DD SYSOUT=*
     //         PEND
     //*
     
     ****************************************************************
     * Affected function: lock daemon                               *
     ****************************************************************
     * Description: new started task, LOCKD                         *
     ****************************************************************
     * Timing: post-APPLY                                           *
     ****************************************************************
     * Part: new SFEKSAMP(FEKSET01)                                 *
     *       new #CUST.PROCLIB(LOCKD)                               *
     *       update /etc/rdz/rsed.envvars                           *
     ****************************************************************
     By switching to a single server setup, where multiple users are
     assigned to a single thread pool server, RSE lost the ability to
     track who owns a lock on a dataset or member. System commands
     stop at address space level, which is the thread pool server.

     To address this problem, a new server has been created, the lock
     daemon. It can track all dataset/member locks done by RSE users,
     as well as locks done by other products, like ISPF.

     Note that the RDz client will display the lock information where
     needed if the client is at a matching service level.

     (1) Setup

     (1a) Customize and submit FEK.SFEKSAMP(FEKSET01)

       This job will create a sample lock daemon started task JCL in
       FEK.#CUST.PROCLIB(LOCKD) for customization purposes. The
       original version is available as FEK.SFEKSAMP(FEKLOCKD).

     //*
     //* RSE LOCK DAEMON
     //*
     //LOCKD    PROC HOME='/usr/lpp/rdz',
     //            CNFG='/etc/rdz',
     //            LOG=1
     //*
     //LOCKD    EXEC PGM=BPXBATSL,REGION=0M,TIME=NOLIMIT,
     //            PARM='PGM &HOME./bin/lockd.sh &CNFG &LOG'
     //STDOUT   DD SYSOUT=*
     //STDERR   DD SYSOUT=*
     //         PEND
     //*

       This job also updates the active /etc/rsed.envvars and adds
       the following lock daemon related statements to the end of the
       file:

       _RSE_LOCKD_PORT=4036
       _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlock.daemon.port=$_RSE_LOCKD_P
     ORT"
       _RSE_JAVAOPTS="$_RSE_JAVAOPTS -Dlock.daemon.cleanup.interval=1
     440"
       _RSE_LOCKD_CLASS=com.ibm.ftt.rse.mvs.server.miners.MVSLockDaem
     on

       _RSE_LOCKD_PORT Specifies the port used by the lock daemon.
       The default port is 4036. Communication on this port is
       confined to the host.
       The remaining variables should not be modified.

     (1b) Customize FEK.#CUST.PROCLIB(LOCKD) and copy to SYS1.PROCLIB

     (1c) Add started task startup to SYS1.PARMLIB(COMMNDxx)

       The lock daemon must be started before users log on to the RSE
       daemon so it can track the lock requests by these users.
       Therefore it is advised to start the lock daemon at system
       startup.

     (1d) Security settings

       The lock daemon does not require any special security permits.
       For restricted environments, the server needs:
       - read/execute permission to Java libraries
       - read/execute permission to /usr/lpp/rdz/*
       - read permission to /etc/rdz/*
       - read permission to any data set in the rsed.envvars STEPLIB
         concatenation
       - read permission to the PROGRAM class profile protecting
         SYS1.LINKLIB (RDz documentation uses profile **)
       When used as started task, the server must also be defined to
       your security software.
     LISTUSER STCLOCK OMVS
     ADDUSER STCLOCK NOPASSWORD DFLTGRP(STCGROUP) -
      OMVS(UID(9) HOME(/tmp) PROGRAM(/bin/sh))
      NAME('RDZ  LOCK DAEMON')
      DATA('RATIONAL DEVELOPER FOR SYSTEM Z')

     RLIST   STARTED LOCKD.* ALL STDATA
     RDEFINE STARTED LOCKD.* -
      STDATA(USER(STCLOCK) GROUP(STCGROUP) TRUSTED(NO))
      DATA('RDZ  LOCK DAEMON')

     SETROPTS RACLIST(STARTED) REFRESH

     (2) Usage

     (2a) How it works

     RSE server registers a newly connected user with the lock
     daemon. The registration info contains the Address Space
     Identifier (which is the ASID of the thread pool server), the
     Task Control Block (TCB) ID (user specific) and the user ID.

     Note that registration is done at connect time only, so all
     RSE users active before the lock daemon was (re)started will not
     be registered.

     When the lock daemon receives a dataset query, it scans the
     system's Global Resource Serialization (GRS) queues. If the ASID
     and TCB match that of a registered user, the user ID is returned
     as lock owner. Otherwise the jobname/user ID related to the ASID
     is returned as lock owner.

     A console message with the registration info is displayed if the
     registration fails, so that an operator can manually match the
     ASID and TCB values with those reported by the system as lock
     owner; D GRS,RES=(*,dataset[(member)]).

     Note: Successful registrations are also listed in DD STDOUT of
           the server if log_level is set to 2. This is useful to
           do the manual mapping for successful registrations that
           were removed after a restart of the lock daemon.

     (2b) Operator commands

     >>-+-START -+--procname--+---------------------------+--------><
        +-S -----+            |        +-'usr/lpp/rdz'--+ |
                              +-,HOME=-+-'install_path'-+-|
                              |                           |
                              |        +-'etc/rdz'-----+  |
                              +-,CNFG=-+-'config_path'-+--|
                              |                           |
                              |       +-1---------+       |
                              +-,LOG=-+-log_level-+-------|
                              |                           |
                              +-<-------------------------+

     procname
      The name of the member in a procedure library that is used to
      start the server. The default name used during the host
      configuration is LOCKD.
     HOME='install_path'
      Path prefix and the mandatory /usr/lpp/rdz used to install
      Developer for System z. The default is '/usr/lpp/rdz'. Note
      that the z/OS UNIX path is case sensitive and that it must be
      enclosed in single quotes (') to preserve lowercase characters.
     CNFG='config_path'
      Absolute location of the configuration files stored in z/OS
      UNIX. The default is '/etc/rdz'. Note that the z/OS UNIX path
      is case sensitive and that it must be enclosed in single quotes
      (') to preserve lowercase characters.
     LOG=log_level
      The detail level of output in DD STDOUT.
      0 : Log error messages only.
      1 : Log error and warning messages (default).
      2 : Log error, warning and informational messages.

     >>-+-MODIFY -+--procname--------------------------------------->
        +-F ------+

     >--,APPL=-+-QUERY -+--+-dataset---------+---------------------><
               +-Q -----+  +-dataset(member)-+

     procname
      The name of the member in a procedure library that is used to
      start the server. The default name used during the host
      configuration is LOCKD.

     QUERY dataset[(member)]
      Query the lock status of the listed dataset/member. The server
      will reply with one of the following messages:

     BPXM023I (stclock) dataset[(member)] NOT LOCKED
     BPXM023I (stclock) dataset[(member)] LOCKED BY userid

     Notes:
     * The server will also report locks held by other products, like
       ISPF.
     * Locks held by RSE clients started before the lock daemon will
       result in the thread pool server address space (RSEDx) being
       reported as lock owner.

     >>-+-STOP -+--procname----------------------------------------><
        +-P ----+

     procname
      The name of the member in a procedure library that is used to
      start the server. The default name used during the host
      configuration is LOCKD.

     (2c) Console messages

     The following list of new console messages can be generated by
     the lock daemon or RSE server:

     FEK501I = Lock daemon started, port={0}, cleanup interval={1},
               log level={2}
     FEK502I = Lock daemon terminating
     FEK510E = Lock daemon, missing port
     FEK511E = Lock daemon, wrong port, port={0}
     FEK512E = Lock daemon, socket error, port={0}
     FEK513W = Lock daemon, registration failed, ASID={0}, TCB={1},
               USER={2}
     FEK514W = Lock daemon, wrong log level, log level={0}
     BPXM023I (stclock) dataset[(member)] NOT LOCKED
     BPXM023I (stclock) dataset[(member)] LOCKED BY userid
     BPXM023I (stclock) command, WRONG COMMAND
     BPXM023I (stclock) command, MISSING ARGUMENT
     BPXM023I (stclock) argument, WRONG ARGUMENT
     
     ****************************************************************
     * Affected function: RSE console messages                      *
     ****************************************************************
     * Description: new console message                             *
     ****************************************************************
     * Timing: n/a                                                  *
     ****************************************************************
     * Part: n/a                                                    *
     ****************************************************************
     This service introduces a new RSE console message.
     FEK209I = No Process to be displayed

     The message can occur after issuing the DISPLAY PROCESS
     operator command.
     
     ****************************************************************
     * Affected function: JES Job Monitor                           *
     ****************************************************************
     * Description: add APPLID support                              *
     ****************************************************************
     * Timing: post-APPLY                                           *
     ****************************************************************
     * Part: FEJJCNFG                                               *
     ****************************************************************
     This maintenance introduces a new control directive for JES Job
     Monitor, APPLID.

     APPLID = application_id                     (default is FEKAPPL)

     APPLID specifies the application identifier used for
     identifying JES Job Monitor to your security software.

     It is advised to have the APPLID of JES Job Monitor (default
     FEKAPPL) match the APPLID of your RSE daemon. RSE's APPLID is
     also FEKAPPL by default, but can be changed to OMVSAPPL by
     uncommenting the related variable in rsed.envvars.

     When the APPLID of RSE daemon and JES Job Monitor match, and
     the user ID assigned to JES Job Monitor is allowed by your
     security software, both servers have access to the same
     PassTicket key in your security software. This allows the client
     to log on using a PassTicket created by a third-party generator
     that has access to the same key.

     Note that with the current RD/z service level, the application
     identifier must be OMVSAPPL for both RSE and JES Job Monitor
     to allow client log on using a PassTicket with the same key as
     the server.

     If used, this directive must be added to the FEJJCNFG
     configuration file, by default located in
     FEK.#CUST.PARMLIB(FEJJCNFG).
     
     ****************************************************************
     * Affected function: JES Job Monitor                           *
     ****************************************************************
     * Description: add CONSOLE_NAME support                        *
     ****************************************************************
     * Timing: post-APPLY                                           *
     ****************************************************************
     * Part: FEJJCNFG                                               *
     ****************************************************************
     This maintenance introduces new control directives for JES Job
     Monitor, CONSOLE_NAME and GEN_CONSOLE_NAME.

     CONSOLE_NAME = {consolename | &SYSUID}         (default is JMON)
     GEN_CONSOLE_NAME = {ON | OFF}                   (default is OFF)

     CONSOLE_NAME specifies the name of the EMCS console to be used
     for issuing generated commands against jobs (CANCEL, PURGE,
     HOLD, and RELEASE).

     CONSOLE_NAME must be either a console name consisting of 2 to 8
     alphanumeric characters, or '&SYSUID' (without quotes).

     If a console name is specified, a single console by that name
     is used for all users.

     If &SYSUID is specified, the userid is used as the console name.
     Thus a different console is used for each user.  If the console
     by that name happens to be in use (which may be the case if, for
     example, the user is using the SDSF ULOG, or is using a TSO
     console), then if GEN_CONSOLE_NAME=ON an alternative console
     name is generated by appending a single numeric digit to the
     userid.  The digits 0 through 9 are attempted. If no available
     console is found, then the command fails.

     If GEN_CONSOLE_NAME=OFF and the userid is not available as
     the console name, the command fails.

     No matter which console name is used, the user ID of the client
     requesting the command is used as the LU of the console, leaving
     a trace in syslog messages IEA630I and IEA631.
     IEA630I  OPERATOR console  NOW ACTIVE,   SYSTEM=sysname , LU=id
     IEA631I  OPERATOR console  NOW INACTIVE, SYSTEM=sysname , LU=id

     If no value is specified for CONSOLE_NAME, the default is JMON.
     Thus existing installations will not be affected unless
     CONSOLE_NAME is introduced to the configuration file.

     If used, these directives must be added to the FEJJCNFG
     configuration file, by default located in
     FEK.#CUST.PARMLIB(FEJJCNFG).
    ).
  

Perform SMP/E RECEIVE and APPLY for the fix

SMP/E RECEIVE and APPLY the fix.