A fix is available
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