IBM Support

PH24619: NEW FUNCTION UPDATE OF DB2 NATIVE RESTFUL SERVICES SUPPORT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • NEW FUNCTION UPDATE OF DB2 NATIVE RESTFUL SERVICES SUPPORT
    
    
    In reported case customer received
    StatusCode":400,"StatusDescription":"Passing query parameters in
     the URL is not supported. Error Location:64:501
    when header contained -H "sec-ch-ua-mobile:? 0"
    
    
    
    
    
    Addtional Keywords and symptoms:
    ********************************
    DB2REST REST RESTFul DDFREST
    Query Parameters
    Error Location:64:501
    statuscode 400
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * All users of Db2 for z/OS native RESTful                     *
    * services.                                                    *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * This APAR provides updates to Db2                            *
    * native RESTful services to allow the                         *
    * setting of Db2 Client Information                            *
    * special register values using HTTP                           *
    * request header fields.                                       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    This APAR adds support for new HTTP request header fields to
    enable Db2 REST services users to override the current Db2
    REST generated default values that are assigned to the
    five (5) Db2 client information special register values,
    which are:
    CURRENT CLIENT_ACCTNG, CURRENT CLIENT_APPLNAME,
    CURRENT CLIENT_CORR_TOKEN, CURRENT CLIENT_USERID, and
    CURRENT CLIENT_WRKSTNNAME.
    The Db2 client information is externalized in accounting
    records and the output of the -DISPLAY command.
    In addition to adding support for the new HTTP request header
    fields, this APAR also adds clarification and enforcement of
    both acceptable characters (Unicode code points) and maximum
    length that can be used for the Db2 REST HTTP request header
    client information related values.
    The following table shows a summary of the five Db2 client
    information special registers and the corresponding HTTP
    request header field names that are now supported for
    Db2 RESTful service calls with this APAR:
    Db2 Client Info           Db2 REST Services Client Information
    Special Register          HTTP Request Header Field Name(s)
    ================          ====================================
    CURRENT CLIENT_ACCTNG     Db2-Client-Acctng
    CURRENT CLIENT_APPLNAME   Db2-Client-ApplName
    CURRENT CLIENT_CORR_TOKEN X-Correlation-ID, or
                              Db2-Client-Corr-Token.  If both
                              header fields are present in the
                              request, then Db2-Client-Corr-Token
                              is used.
    CURRENT CLIENT_USERID     Db2-Client-Userid
    CURRENT CLIENT_WRKSTNNAME User-Agent (Existing), or
                              Db2-Client-WrkStnName.  If both
                              header fields are present in the
                              request, then Db2-Client-WrkStnName
                              is used.
    

Problem conclusion

Temporary fix

Comments

  • This APAR adds support for new HTTP request header fields to
    enable Db2 REST services users to override the current Db2
    REST generated default values that are assigned to the
    five (5) Db2 client information special register values,
    which are:
    CURRENT CLIENT_ACCTNG, CURRENT CLIENT_APPLNAME,
    CURRENT CLIENT_CORR_TOKEN, CURRENT CLIENT_USERID, and
    CURRENT CLIENT_WRKSTNNAME.
    In addition to adding support for the new HTTP request header
    fields, this APAR also adds clarification and enforcement of
    both acceptable characters (Unicode code points) and maximum
    length that can be used for the Db2 REST HTTP request header
    client information related values.
    With the new support added by this APAR, the Db2 Knowledge
    Center section titled "Management of REST service client
    information", will be updated to include information
    similar to what is shown below.
    Management of REST service client information
    =============================================
    Db2 DDF implicitly defines special registers and a global
    variable to store client information about a valid HTTP REST
    service request. The client information is externalized in
    accounting records and the output of the -DISPLAY command.
    When processing a REST service request, Db2 stores the client
    information in the following special registers:
    CURRENT CLIENT_ACCTNG
    =====================
     CURRENT CLIENT_ACCTNG contains the value of the client
     accounting string.
     Db2 REST services maximum supported length is 255
     characters.
     User specified value can be set using the HTTP request
     header field Db2-Client-Acctng.
     Db2 REST generated default value
      Contains the string of an HTTP REST GET or POST method that
      is concatenated with the name of a qualified service in the
      form of <collectionID.serviceName>, as in
      GET SYSIBMSERVICE.simpleSelect1 or
      POST SYSIBMSERVICE.simpleSelect1.
      The maximum length of the CURRENT CLIENT_ACCTG value is 255
      characters, so <serviceName> might be truncated.
    CURRENT CLIENT_APPLNAME
    =======================
     Db2 REST services maximum supported length is 128
     characters.
     User specified value can be set using the HTTP request
     header field Db2-Client-ApplName.
     Db2 REST generated default value
      Contains the value of the service name string in the
      service request. The maximum length of the
      CURRENT CLIENT_APPLNAME value is 128 characters.
    CURRENT CLIENT_CORR_TOKEN
    =========================
     Db2 REST services maximum supported length is 128
     characters.
     User specified value can be set using the HTTP request
     header field X-Correlation-ID or the HTTP request header
     field Db2-Client-Corr-Token.  If both HTTP X-Correlation-ID
     and Db2-Client-Corr-Token request header fields are present
     in the request, then the Db2-Client-Corr-Token field value
     is used.
     Db2 REST generated default value
      Contains the value of the logical unit of work identifier
      or LUWID string that is generated for the thread without
      the commit count for the service request. The correlation
      token can be used to correlate any downstream connections
      that are used by the service.
    CURRENT CLIENT_USERID
    =====================
     Db2 REST services maximum supported length is 128
     characters.
     User specified value can be set using the HTTP request
     header field Db2-Client-Userid.
     Db2 REST generated default value
      Contains the value of the authentication ID that was used
      to establish an HTTP connection for the service request.
    CURRENT CLIENT_WRKSTNNAME
    =========================
     Db2 REST services maximum supported length is 255
     characters.
     User specified value can be set using the HTTP request
     header field User-Agent or Db2-Client-WrkStnName.  If both
     User-Agent and Db2-Client-WrkStnName request header fields
     are present in the request, then the Db2-Client-WrkStnName
     field value is used.
     Note that many REST clients set the User-Agent header value
     to a default string that represents the name and version of
     the REST client that is being used.
     Db2 REST generated default value
      Contains the value of the client IP address string. The
      IP address is associated with the client that sent the REST
      service request.
    Db2 also stores information about the HTTP REST service
    request in the following built-in global variable:
    SYSIBM.CLIENT_IPADDR
    ====================
    Contains the value of the client IP address string. The IP
    address is associated with the client that sent the REST
    service request.
    All Db2 HTTP request header client information values must be
    provided in UTF-8 encoding and consist only of a subset of
    characters from the first 128 Unicode code points.
    Specifically, only the following single byte Unicode
    characters are allowed in Db2 REST services client
    information values:
    Description             Character    Unicode Code point
    ===========             =========    ==================
    Upper Case Alpha        A-Z          X'41'-X'5A'
    Lower Case Alpha        a-z          X'61'-X'7A'
    Numeric                 0-9          X'30'-X'39'
    Blank                   (sp)         X'20'
    Number Sign/Pound Sign  #            X'23'
    Dollar Sign             $            X'24'
    Percent Sign            %            X'25'
    Ampersand               &            X'26'
    Left Parenthesis        (            X'28'
    Right Parenthesis       )            X'29'
    Asterisk                *            X'2A'
    Plus Sign               +            X'2B'
    Comma                   ,            X'2C'
    Hyphen-Minus            -            X'2D'
    Period                  .            X'2E'
    Slash/Solidus           /            X'2F'
    Colon                   :            X'3A'
    Semi-Colon              ;            X'3B'
    Less Than Sign          <            X'3C'
    Equal                   =            X'3D'
    Greater Than Sign       >            X'3E'
    At Sign                 @            X'40'
    Underscore              _            X'5F'
    Note 1: Any disallowed Unicode character code points found
    in the input client information values will be replaced by
    the period (x'2E') character.
    Note 2: Although Db2 REST services client information values
    allow the use of several variant characters, such as #, @, $,
    and others, it is suggested that users use only the invariant
    characters when possible.  This suggestion is to avoid any
    unexpected display issues of the client information values
    after translation to the Db2 system EBCDIC CCSID.  The Db2
    client information values may be included in various Db2
    console messages, trace records, and other external
    representations, which might not display as expected if
    variant characters are used in the client information
    settings.
    

APAR Information

  • APAR number

    PH24619

  • Reported component name

    DB2 OS/390 & Z/

  • Reported component ID

    5740XYR00

  • Reported release

    C10

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-04-20

  • Closed date

    2020-05-21

  • Last modified date

    2021-02-03

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

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

    UI69646

Modules/Macros

  • DSNLJEMG DSNLIRTR DSNLJHPP DSNLJTIN
    

Fix information

  • Fixed component name

    DB2 OS/390 & Z/

  • Fixed component ID

    5740XYR00

Applicable component levels

  • RC10 PSY UI69646

       UP20/05/30 P F005

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":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Platform":[{"code":"PF054","label":"z\/OS"}],"Version":"12.0"}]

Document Information

Modified date:
04 February 2021