IBM Support

PH39435: IN IDZ 15.0 OR Z/OS EXPLORER 3.2.0, 0C4 ABEND OCCURS WHEN A CLIENT DIISCONNECTS DURING LONG-RUNNING BACK-END QUERY

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • In IBM Developer for z/os 15.0 or z/os Explorer 3.2.0, an OC4
    abend generates a javacore and dump when a client disconnects
    from the RSE host during a long running batch fast query for PDS
    attributes having a large number of members.
    To recreate:
      - Set up a Filter for a PDS with a large number of members,
      - Then select the option "Show in table".
      - Allow the connection to write to the rsecomm.log and then
    disconnect the user connection.
    
    The CEE dump reports:
    CEE3204S The system detected a protection exception (System
    Completion Code=0C4).
    and
    
        5      fprintf     +0000002E              CELQLIB
    HLE77C0  Exception
        7     trace       +000006DC              libfekfmain64.so
    Call
        8
    Java_com_ibm_ftt_rse_mvs_server_miners_FFSJNI_queryLockOwner
    
                          +00000390              libfekfmain64.so
    Call
        9     ZJ9SYM1     +00000000              libj9vm29.so
    Call
        10    runJavaThread
                          +00000332              libj9vm29.so
    j202012  Call
     ...
    
    The stack trace shows:
    
    at
    com/ibm/ftt/rse/mvs/server/miners/FFSJNI.queryLockOwnerInfo(Nati
    ve Method)
    at
    com/ibm/ftt/rse/mvs/server/filesystem/impl/FFSServerImpl.queryLo
    ckOwnerInfo(Bytecode PC:5(Compiled Code))
    at
    com/ibm/ftt/rse/mvs/server/miners/MVSFileSystemMiner.getFileLock
    OwnerFromThreadPool(Bytecode PC:40(Compiled Code))
    at
    com/ibm/ftt/rse/mvs/server/miners/MVSFileSystemMiner.queryLockOw
    ner(Bytecode PC:35(Compiled Code))
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: 1. security admin                            *
    *                 2. All RSE users.                            *
    *                 3. Users running RSE Daemon Operator DISPLAY *
    *                  OWNER command with extended lock tracker    *
    *                  enabled.                                    *
    *                 4. Users running GET lockOwner to retrieve   *
    *                 the lock owner info for all members of a     *
    *                 PDS.                                         *
    *                 5. Users running RSE Daemon Operator         *
    *                 command to display all lock owner info of    *
    *                 all members of a dataset.                    *
    *                 6. RSE API users calling commands related    *
    *                 to query lock owner info.                    *
    *                 7. RSE users running RSE Daemon Operator     *
    *                 command to query lock owner info for a       *
    *                 dataset on a server with extended lock       *
    *                 tracker enable.                              *
    *                 8. Users operate dataset archive on tape     *
    *                 from the GUI.                                *
    *                 9. Users in a system with improper           *
    *                 passticket configuration required to work    *
    *                 with RSE.                                    *
    *                 10. all JMON users                           *
    *                 11. Users disconnect when still running fast *
    *                  query for attributes of a large number of   *
    *                  members for a dataset.                      *
    *                 12. all JMON users                           *
    *                 13. users using STEPS function on job where  *
    *                  EXEC PGM uses a backward reference          *
    *                 14. Users search or browse active            *
    *                 datasets on tape device                      *
    *                 15. z/OS Explorer                            *
    *                 16. IBM support                              *
    *                 17. sysprog                                  *
    ****************************************************************
    * PROBLEM DESCRIPTION: 1. document need for SUPERUSER.FILESYS. *
    *                      CHANGEPERMS permit                      *
    *                      2. If the *timeout* status of a         *
    *                      ThreadPool is never reset, it will be   *
    *                      automatically removed from Daemon's     *
    *                      selection for ever.                     *
    *                      A new ThreadPool eventually will be     *
    *                      needed to be spawn to handle new        *
    *                      connection.                             *
    *                      3. Internal technical design            *
    *                      modification to let ThreadPool manages  *
    *                       the lock tracker as it should be and   *
    *                       as a prep step required to implement   *
    *                       RSE Daemon Operator command to work    *
    *                       with the lock tracker.                 *
    *                      4. At a time, members of a PDS can be   *
    *                      locked. To query all locks hold on      *
    *                      the members using RSEAPI, users needs   *
    *                      to issue a separate command GET         *
    *                      lockOwner per member.                   *
    *                      5. At a time, members of a PDS can be   *
    *                      locked. To query all locks hold on the  *
    *                      members using RSE Daemon Operator       *
    *                      command, users needs to issue a         *
    *                      separate command DISPLAY OWNER per      *
    *                      member.                                 *
    *                      6. Currently, RSEAPI GET lockOwner      *
    *                      implementation is based on the          *
    *                      C_GET_MEMBER_ATTRIBUTE (for PDS member) *
    *                       and C_GET_ATTRIBUTE (for SEQ dataset), *
    *                        which runs a rexx script to return    *
    *                        many attributes of the dataset,       *
    *                        including the lockOwner information   *
    *                      7. RSE Daemon Operator operation to     *
    *                      display a dataset's lock owner is       *
    *                      processing with the original workflow   *
    *                      at ThreadPool client mapping level      *
    *                      only.                                   *
    *                      It did not refer to the VSAM in         *
    *                      resolving the user id as mvsminer..     *
    *                      8. RSE does not support active datasets *
    *                       on tape and is supposed to treat these *
    *                        datasets as offline to disable        *
    *                        further operations on these datasets. *
    *                      It mistakenly includes also archive     *
    *                      datasets on tape.                       *
    *                      9. The RACF rc and rsn codes from       *
    *                      passticket generation are not logged    *
    *                      for further trouble shooting.           *
    *                      10. Enhancement to avoid $HASP708       *
    *                      authorization failure when opening a    *
    *                      spool file                              *
    *                      11. The long running query may still be *
    *                       running in the background when the     *
    *                       user disconnects, causing the query    *
    *                       using resource that might already been *
    *                        released by the disconnection.        *
    *                      12. JMON enhancement to support         *
    *                      Trusted TCP                             *
    *                      13. JMON ABEND U4087 when using STEPS   *
    *                      function                                *
    *                      14. zExplorer does not support active   *
    *                      data sets on tape, which is not a       *
    *                      common media for active data sets.      *
    *                      15. IBM Developer for z Systems         *
    *                      generated JCL with Scandinavian         *
    *                      special characters is not starting      *
    *                      with remote syntax check                *
    *                      16. Enhancement to collect              *
    *                      java.security information with FEKLOGS  *
    *                      17. faulty default port in ivpinit.sh   *
    ****************************************************************
    1. the RSED started task user ID needs permit to security
    profile SUPERUSER.FILESYS.CHANGEPERMS in the UNIXPRIV class
    2. The *timeout* status of the ThreadPool should be reset when
    one of its connection is logging off as documented to optimize
    RSE performance avoiding unnecessary spawning of a new
    ThreadPool.
    3. Extended lock tracker is operate and managed at ThreadPool
    level, management of the tracker should be done by ThreadPool
    for RSE (for RSEAPI, it's still be done by mvsminer  of the
    first client connection).
    In current implementation, ThreadPool reference to the
    mvsminer's tracker causes a looping dependency. Overall, the
    implementation of the extended lock tracker should be moved to
    ThreadPool package.
    4. Related reference from RSE: issuing 'Show in Table' for a
    PDS shows the lock owner info of all members.
    A similar support is provided by a new RSE API GET command
    (GET lockInfoAll) as done for RSE Daemon Operator command
    F <rse_jobName>,APPL=DISPLAY OWNER,DSN=<dsn_name>,ALL
    5. Using a GUI client connection, issuing 'Show in Table' for a
    PDS shows the lock owner info of all members.
    A similar support is be provided by a new RSE Daemon Operator
    command:
    6. RSE's mvsminer should provide the support  for a command to
    query the lock owner information using the query lock info
    functionality directly, not including extra information as
    C_GET_MEMBER_ATTRIBUTE.
    It is to optimize the RSE API functionality of lock query.
        F <rse_jobName>,APPL=DISPLAY OWNER,DSN=<dsn_name>,ALL
    7. RSE Daemon should be able to use the extended lock tracker
    feature to resolve the lock owner id as close as possible as
    mvsminer.
    8. RSE mistakenly includes archived dataset on tape instead of
    only active datasets on tape.
    9. The original passticket error leads to a null pointer
    exception in parsing the result as the command is not executed.
    The logging of this exception is not helpful and may cause
    misleading.
    10. JMON relied on JES to determine if spool file access is
    permitted, which caused $HASP708 authorization failure messages
     for the JMON started task if the user did not have the right
     permit. With this enhancement, JMON will test access
     permissions before attempting to open the spool file, and thus
     avoid the $HASP708 message.
    11. The long running thread for the query does not get stop by
    the miner when it finish. The thread when using released
    resource cause the dump.
    12. Jes Job Monitor enhancement to support Trusted TCP. This
    can be utilized by other servers interacting with JMON, like
    z/OS Explorer and Urban Code Deploy.
    13. JMON ABEND with user completion code 4087, reason code
    00000002 when using STEPS function on job where EXEC PGM uses a
    backward reference
    14. zRSE host may handle the discovery of volsers on tape device
     incorrectly.
    The zRSE host now detects the tape device type of non-VSAM
    dataset in catalog search and will treat these as offline
    datasets. Browse and Search for these datasets will be skipped.
    Note: Remote z/OS File Search to skip offline datasets
    implementation is introduced in APAR PH37195.
    15. Using IBM Developer for z Systems with the 'Syntax Check
    --> Remote' command, the generated JCL has step COBOL.SYSIN.
    All Scandinavian special characters using code pages 277 and
    278 and local Cp1252 cannot be identified correctly.
    16. Enhancement to collect java.security information with
    FEKLOGS
    17. faulty default port in z/OS Explorer ivpinit.sh
    

Problem conclusion

  • 1. sample FEKRACF job & host docs updated
    2.reset the ThreadPool's *timeout* status (by Daemon) by the
    end of the processing of connection log-off from the ThreadPool
    3. The implementation of the lock tracker now is included in
    the zosserver package and can be referred by mvsminer.
    The lock tracker now is started by ThreadPool (for RSEAPI,
    it's still be done by mvsminer  of the first client connection).
    ThreadPool now can operate the lock tracker for the RSE Daemon
    Operator command request to display the lock owner info with
    the extended lock tracker enabled.
    4. The new GET command "GET lockInfoAll" will issue a (new)
    command C_QUERY_LOCK_INFO_ALL_MEMBERS to read the VSAM tracker
    and filter out the entries related to the PDS members.
    The feature is supported only with extended lock owner tracker
    enabled.
    5. The support to show all lock owner info of the members of a
    PDS is introduced for RSE Daemon Operator command with the
    extended lock owner info tracker.
    An active ThreadPool would read the VSAM tracker and filter
    out the lock entries hold on the members to print out to the
    console. The info to print includes some more helpful info
    such as asid, tcb, jobname, system name and the date & time
    the lock entry is recorded in the VSAM.
    While the  'Show in Table' info retrieved is done with a
    client connection with or without extended lock owner tracker,
    the new Daemon Operator command is done without a client
    connection and will be supported only with the extended lock
    tracker enabled. To display without the extended lock info
    tracker, use the 'Show in Table' instead.
    6. RSE's mvsminer now provide the support of C_GET_LOCK_OWNER.
    RSE API implementation now is simplified to use the new call
    directly.
    7. Move the lock tracker facility to ThreadPool management
    packaging so ThreadPool can use it as mvsminer in resolving
    the lock owner info.
    (Extended lock tracker already operates at ThreadPool level by
    design.)
    8. In the active dataset on tape detection based on device type,
     check on volsers marked with archived keyword and leave them
     as is, then proceed with the rest as active datasets and
     treated them as offline.
    9.Adding back the logging of rc, rsn of the original passticket
     error.
    Check on process execution environment before parsing the result
     to avoid the misleading null error logging
    10. Enhancement to avoid $HASP708 authorization failure when
    opening a spool file
    11. Adding the cancelation callback to the query call, fired
    off by the MVS miner when it finishing. So that it can flag the
     running query thread to stop. Also, register the cancelable
     handle in the callback table, so it could receive the required
      cancelation request following up for the stop action on the
       query of a user from the GUI.
    12. Jes Job Monitor enhancement to support Trusted TCP. This
    can be utilized by other servers interacting with JMON, like
    z/OS Explorer and Urban Code Deploy.
    13. EXEC PGM with a backward reference is now supported
    14. The zRSE host now detects the tape device type of non-VSAM
    dataset in catalog search and will treat these as offline
    datasets.
    Include the required properties bundles in the utility package
    for it to load and work properly.
    15. Update JCL generation and submission to use the same
    encoding that is configured in Eclipse Workspace
    (Preferences/General/Workspace) to avoid the encoding mismatch
    during JCL generation and submission.
    16. Enhancement to collect java.security information with
    FEKLOGS
    17. corrected typo
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH39435

  • Reported component name

    EXP FOR Z/OS HO

  • Reported component ID

    5655EXP23

  • Reported release

    320

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-07-29

  • Closed date

    2021-10-22

  • Last modified date

    2021-11-01

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

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

    UI77775

Modules/Macros

  • FEJENF70 FEJJCNFG FEJJJCL  FEJJMON  FEJTSO   FEK1SMPE FEK2RCVE
    FEK3ALOC FEK4ZFS  FEK5MKD  FEK6DDEF FEK7APLY FEK8ACPT FEK@CERR
    FEK@CONE FEK@CONF FEK@CUST FEK@DEB  FEK@DESC FEK@FLOW FEK@GEN
    FEK@GENW FEK@ISPF FEK@IVP  FEK@IVPD FEK@IVPW FEK@JCN1 FEK@JCNE
    FEK@JESJ FEK@MAIN FEK@MIGO FEK@OPTE FEK@OPTG FEK@OPTN FEK@PRIM
    FEK@RSE1 FEK@RSEO FEK@STRT FEK@TAB1 FEK@TAB2 FEK@TAB3 FEK@WRK1
    FEK@WRK2 FEK@WRK3 FEK@WRK4 FEK@WRK5 FEKAPPCC FEKAPPCL FEKAPPCX
    FEKATTR  FEKDSI   FEKEESX0 FEKFASIZ FEKFATT1 FEKFBLD  FEKFCIPH
    FEKFCLIE FEKFCMOD FEKFCMPR FEKFCMSG FEKFCOMM FEKFCOPY FEKFCOR6
    FEKFCORE FEKFDBG  FEKFDBG6 FEKFDBGM FEKFDIR  FEKFDIR6 FEKFDIVP
    FEKFDST0 FEKFDST1 FEKFDST2 FEKFENVF FEKFENVI FEKFENVP FEKFENVR
    FEKFENVS FEKFEPL  FEKFERRF FEKFGDGE FEKFICUL FEKFISPF FEKFIVP0
    FEKFIVPA FEKFIVPD FEKFIVPI FEKFIVPJ FEKFIVPT FEKFJESM FEKFJESU
    FEKFJVM  FEKFLATR FEKFLDSI FEKFLDSL FEKFLEOP FEKFLOGS FEKFLPTH
    FEKFMAI6 FEKFMAIN FEKFMINE FEKFMNTL FEKFNTCE FEKFOMVS FEKFPATT
    FEKFPLUG FEKFPTC  FEKFRIVP FEKFRMSG FEKFRSES FEKFRSRV FEKFSCMD
    FEKFSEND FEKFSSL  FEKFSTUP FEKFT000 FEKFT001 FEKFT002 FEKFT003
    FEKFT004 FEKFT005 FEKFT006 FEKFT007 FEKFT008 FEKFT009 FEKFT010
    FEKFT011 FEKFT012 FEKFT013 FEKFT014 FEKFT015 FEKFT016 FEKFT017
    FEKFT018 FEKFT019 FEKFT020 FEKFTIVP FEKFTSO  FEKFUTIL FEKFVERS
    FEKFXITA FEKFXITL FEKFZOS  FEKHCONF FEKHCUST FEKHDEB  FEKHDESC
    FEKHFLOW FEKHGEN  FEKHISPF FEKHIVP  FEKHIVPD FEKHJESJ FEKHMAIN
    FEKHMIGO FEKHOPTE FEKHOPTN FEKHPRIM FEKHRSE1 FEKHRSEO FEKHSTRT
    FEKHTAB1 FEKHTAB2 FEKINIT  FEKKEYS  FEKLOCKA FEKLOGR  FEKLOGS
    FEKM00   FEKM01   FEKM02   FEKMKDIR FEKMOUNT FEKMSGC  FEKMSGS
    FEKRACF  FEKRSED  FEKSAPF  FEKSAPPL FEKSBPX  FEKSCLAS FEKSCLOG
    FEKSCMD  FEKSCPYM FEKSCPYU FEKSDSN  FEKSENV  FEKSETUP FEKSISPF
    FEKSJCFG FEKSJCMD FEKSJMON FEKSLPA  FEKSPROG FEKSPTKT FEKSRSED
    FEKSSERV FEKSSTC  FEKSSU   FEKSUSER FEKXCFGE FEKXCFGI FEKXCFGM
    FEKXCFGT FEKXMAIN FEKXML
    

Fix information

  • Fixed component name

    EXP FOR Z/OS HO

  • Fixed component ID

    5655EXP23

Applicable component levels

  • R320 PSY UI77775

       UP21/10/30 P F110

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.

[{"Line of Business":{"code":"LOB35","label":"Mainframe SW"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSBDYH","label":"IBM Explorer for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"320"}]

Document Information

Modified date:
02 November 2021