IBM Support

PH65340: INTERNAL DEFECT FIX - RSEAPI 1.2.1

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Internal defect fix - RSEAPI 1.2.1
    

Local fix

  • n/a
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: 1. All users                                 *
    *                 2. All users                                 *
    *                 3. All users                                 *
    *                 4. All users                                 *
    *                 5. All users                                 *
    *                 6. All users                                 *
    *                 7. All users                                 *
    *                 8. All users                                 *
    *                 9. All users                                 *
    *                 10. All users                                *
    *                 11. All users                                *
    *                 12. All users                                *
    *                 13. All users                                *
    *                 14. All users                                *
    *                 15. All users                                *
    *                 16. All users                                *
    *                 17. All users                                *
    *                 18. security admin                           *
    ****************************************************************
    * PROBLEM DESCRIPTION: 1. HEAD GET for fon existing PDS        *
    *                      member content return 200 and no etag   *
    *                      2. For RSEAPI, with current             *
    *                      implementation the cancel is done in    *
    *                      chunk for all cancellable running       *
    *                      requests, which each caller may not     *
    *                      be clear or well aware of his/her       *
    *                      request being cancelled, partial        *
    *                      result may be misinterpreted; for       *
    *                      ex: in search SEQ and PDSMembers path   *
    *                      options                                 *
    *                      3. RSEAPI datasets/<pds_name>/          *
    *                      membersAttr throwing exception          *
    *                      StringIndexOutOfBounds when the PDS     *
    *                      has an empty member attribute           *
    *                      4. Rseapi mvs search                    *
    *                      datasets/search/PDSMembers commands     *
    *                      would leave over a backend search       *
    *                      handler thread after the search done.   *
    *                      5. For RSEAPI, with current             *
    *                      implementation the cancel is done in    *
    *                      chunk for all cancellable running       *
    *                      requests, which each caller may not     *
    *                      be clear or well aware of his/her       *
    *                      request being cancelled, partial        *
    *                      result may be misinterpreted; for ex:   *
    *                      in pds member attributes query          *
    *                      6. For RSEAPI, with current             *
    *                      implementation                          *
    *                      the cancel is done in chunk for all     *
    *                      cancellable running requests, which     *
    *                      each                                    *
    *                      caller may not be clear or well aware   *
    *                      of                                      *
    *                      his/her request being cancelled,        *
    *                      partial                                 *
    *                      result may be misinterpreted; for ex:   *
    *                      in                                      *
    *                      content download.                       *
    *                      7. Expiration date if existing has      *
    *                      been display as Calendar Java object    *
    *                      (lengthy and not really readable to     *
    *                      user).                                  *
    *                      8. In previous RSEAPI release's         *
    *                      implementation, dataset attributes      *
    *                      listing could not be cancelled when     *
    *                      needed such as for an unexpected long   *
    *                      query.                                  *
    *                      9. RSEAPI server operation does not     *
    *                      work with double bytes encoding         *
    *                      locale, such Japanese, and should be    *
    *                      default to LANG=C following RSED.       *
    *                      In addition to that, default UTF-8      *
    *                      encoding and auto conversion in Java    *
    *                      21 may also have unexpected behavior    *
    *                      in some cases, best to be avoided by    *
    *                      default to LANG=C.                      *
    *                      10. Currently RSEAPI returns            *
    *                      attributes of all matched dataset up    *
    *                      to 20K default limit.                   *
    *                      11. RSEAPI change password does not     *
    *                      work with overflow server               *
    *                      12. Currently RSEAPI returns all        *
    *                      matched dataset up to 20K default       *
    *                      limit.                                  *
    *                      13. Existing download and upload that   *
    *                      includes checksum before dataset type   *
    *                      validation would have these two         *
    *                      issues: recall unexpectedly the input   *
    *                      dataset if it is an archive, or         *
    *                      hangs if it is offline.                 *
    *                      14. Zowe requires "content-length"      *
    *                      response header for progress            *
    *                      monitoring activity with MVS raw        *
    *                      download, which is not provided by      *
    *                      RSEAPI at the moment.                   *
    *                      15. Primary would normally see a        *
    *                      dropping of requests as it is over      *
    *                      the concurrency semaphore setting.      *
    *                      16. RSEAPI converts DSN pattern in      *
    *                      SEQ and PDS search to upper case        *
    *                      while pattern regex match is case       *
    *                      sensitive.                              *
    *                      17. RSEAPI currently started with       *
    *                      file.encoding=Cp1047 which is not       *
    *                      valid for chtag USS command in          *
    *                      certain usage of RSEAPI caller such     *
    *                      as Zowe.                                *
    *                      18. HUHRACF has invalid option ALL      *
    *                      for the LISTGRP command                 *
    ****************************************************************
    1. HEAD on non existing member should return invalid input
    2. Apparently, the common behavior of mvsminer is keeping the
    partial result in the response of a cancel request, which
    could be ok as the cancel is explicitly asked and known by
    user so they should know the result could be partial.
    Need to adjust mvsminer and RSEAPI to have clear cancel
    message with no partial result. RSED mvsminer still keep
    partial result behavior with cancelling.
    3. Mvsminer backend expect the member attribute info result
    with at least line counts and choke when it is emptly.
    4. Left over search thread is due to client RSEAPI missed to
    update the search handler that all data is received.
    5. Apparently, the common behavior of mvsminer is keeping the
    partial result in the response of a cancel request, which
    could be ok as the cancel is explicitly asked and known by
    user so they should know the result could be partial.
    Need to adjust mvsminer and RSEAPI to have clear cancel
    message with no partial result. RSED mvsminer still keep
    partial result behavior with cancelling.
    6. Apparently, the common behavior of mvsminer is keeping the
    partial result in the response of a cancel request, which
    could be ok as the cancel is explicitly asked and known by
    user so they should know the result could be partial.
    Need to adjust mvsminer and RSEAPI to have clear cancel
    message with no partial result. RSED mvsminer still keep
    partial result behavior with cancelling.
    7. Expiration date now is displayed in the same format as
    creation and reference date. No expiration date is display
    as **None**
    8. In this release, with the new implementation, cancellation
    can be introduced for dataset attributes listing query.
    9. Customizing LANG=ja_JP (and possible some other locale)
    encoding in rseapi.env would fail the server startup and/or
    server functionality.
    10. To provide the range option (index and number to return)
    to the existing dataset attributes listing command.
    11. At overflow server, the newpassword is not retrieved
    properly to use with the change password option.
    12. To provide the range option (index and number to return)
    to the existing dataset listing command.
    13. Mvs miner checksum (and/or get bytes-on-host) is using
    zFile (reading), which could recall an archive automatically
    or hangs on an offline dataset.
    As get bytes-on-hosts now is always included in raw download,
    it would show this issue.
    14. Use bytes-on-host to indicate number of bytes to read
    during download
    15. Tomcat semaphore valve control the concurrency of all
    requests going through a server service entrance.
    For overflow scenario, such handling is not really relevant as
    all requests will have to through the primary but will be
    forwarding to secondary as needed.
    For that, primary would normally see a dropping of requests as
    it is over the concurrency semaphore setting.
    16. Regex DSN pattern option does not work properly for PDS
    and SEQ search.
    17. chtag's valid encoding is different from Java CharSet,
    listing is provided from iconv list command based on chtag man
    page.
    18. HUHRACF has invalid option ALL for the LISTGRP command in
    the dataset security section
    

Problem conclusion

  • 1. Due to technical limitation of library used in detecting a
    member existence, it does not work. This has been fixed
    recently, now RSEAPI can include PDS member existence
    detection in dataset download type validation to error out
    properly when the member does not exist.
    2. RSEAPI now will throw an exception with clear cancel
    message and no partial result for search SEQ and PDSMembers
    commands.
    3. Mvsminer now can handle an empty member attribute result.
    This fix does not cover the investigation for why at least the
    line counts does not return.
    4. Rseapi client now flag its status as update is done so the
    search thread stops waiting and can exit.
    5. RSEAPI now will throw an exception with clear cancel
    message and no partial result for pds member attributes query.
    6. RSEAPI now will throw an exception with clear cancel
    message and no partial result.
    7. Readable standard date format display should be and now is
    provided for expiration date of a dataset.
    8. RSEAPI dataset attributes listing now can be cancelled with
    a proper error message and no partial result.
    9. RSEAPI server should be started up with LANG=C.
    10. Following the same behavior of PDS member attributes range
    support introduced in last release, users now can use start
    range name or index, and num to show to list dataset
    attributes with a filter in range. Range input and output in
    header, and server setting for num to show limit is the same
    as with PDS member attributes range support.
    11. RSEAPI change password with a redirect request works fine
    now with the fix to retrieve correctly the newpassword from
    the redirect request.
    12. Following the same behavior of PDS member attributes range
    support introduced in last release, users now can use start
    range name or index, and num to show to list dataset with a
    filter in range. Range input and output in header, and server
    setting for num to show limit is the same as with PDS member
    attributes range support.
    13. Implement these to fix the issues:
    1. Moving up the dataset type validation before the existin
    checksum/getBytesOnHost command.
    2. Add offline dataset detection to the validation of
    dataset type.
    14. MVS adapter checksum command now includes the
    bytes-on-host (long) in command's status to be used. Checksum
    command now is called always with and without etag required
    option to always be able to retrieve the file size.
    15. All server in an overflow setup has its own resource
    threshold control as standard and used in its basic overflow
    redirecting requests. This mechanism could play the same role
    as the Tomcat valve semaphore in a non-overflow setup.
    The solution is to skip the Tomcat valve semaphore check with
    an overflow setup.
    16. Use the DSN regex pattern as is (provided by user input).
    Note: MVS miner backend query result with name related,
    including DSN, member or attributes is usually in upper case.
    DSN pattern non-regex search is still automatically converted
    to upper case. User must provide the DSN-related letter in the
    pattern in upper case, and regex symbols in case sensitive are
    required by regex pattern match rules.
    17. Use the corresponding valid encoding name with chtag
    IBM-1047, which is a valid alias for java corresponding CharSet.
    18. ALL option is removed
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH65340

  • Reported component name

    EXP FOR ZOS RSE

  • Reported component ID

    5655EXP33

  • Reported release

    120

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-02-19

  • Closed date

    2025-03-05

  • Last modified date

    2025-04-02

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

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

    UO02150

Modules/Macros

  • HUH1SMPE HUH2RCVE HUH3ALOC HUH4ZFS  HUH5MKD  HUH6DDEF HUH7APLY
    HUH8ACPT HUHCRYPT HUHFT000 HUHFT001 HUHFT002 HUHMKDIR HUHMOUNT
    HUHPAX01 HUHRACF  HUHSETUP HUHSHPAX HUHSTC
    

Fix information

  • Fixed component name

    EXP FOR ZOS RSE

  • Fixed component ID

    5655EXP33

Applicable component levels

  • R120 PSY UO02150

       UP25/04/02 P F503

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.

[{"Business Unit":{"code":"BU011","label":"Systems - zSystems software"},"Product":{"code":"SG19M"},"Platform":[{"code":"PF054","label":"z Systems"}],"Version":"120"}]

Document Information

Modified date:
02 April 2025