A fix is available
APAR status
Closed as program error.
Error description
You are attempting to perfrom a LINK to the called program and build "WBBL-PARMS" through the COMMAREA from the calling program. You received the following trace exception entries, AP E161 EXEC EXIT - WEB READNEXT HTTPHEADER NAMELENGTHVALUEVALUELENGTH RESP(16) RESP2(6) NOHANDLE COBOLII WB 0311 WBAPF EXIT - FUNCTION(START_BROWSE) RESPONSE(EXCEPTION) REASON(FORMFIELD_UNKNOWN_FORMTYPE) HTTP_BUFFER_NAME(00000000 , 00000000 , 00000000) AP E161 EXEC EXIT WEB STARTBROWSE RESP(16) RESP2(153) NOHANDLE COBOLII It is hitting a bug in the forms processing code. That code is relying on bit wrb_url_encoded_body being set. However, that bit is only getting set when the request comes in via a TCPIPSERVICE and not when the request is received by an external link to DFHWBBLI. If that bit is not set then the routine expects this to be a multipart form so checks the content-type for multipart/form-data. That string isn't found so the exception gets reported. Similar issue with GET method (rather than POST method). When HTTP request is received by external link to DFHWBBLI, GET method placed the form data in the first line of the HTTP request and it omittied the request boday entirely. It would not work when get the form fields. Additional Symptom(s) Search Keyword(s): KIXREVJXD
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICS users * **************************************************************** * PROBLEM DESCRIPTION: EXEC CICS WEB READ FORMFIELD and * * EXEC CICS WEB STARTBROWSE FORMFIELD * * fail when DFHWBBLI is called directly * * from a user application. * **************************************************************** * RECOMMENDATION: * **************************************************************** An application links directly to DFHWBBLI. A valid commarea has been supplied and the HTTP request is a POST whose body is a url encoded form. The target server program in CICS issues an EXEC CICS WEB READ FORMFIELD or EXEC CICS WEB STARBROWSE FORMFIELD command to process the supplied forms data. This command fails with INVREQ and RESP2=153. The reason for this is that the forms processing code is reliant on bit wrb_url_encoded_body being set on in the Web Request Block (WRB). That bit has not been set when DFHWBBLI is linked to from a user application. This causes the forms code to assume the form is a multipart form and attempts to locate the boundary string supplied as part of the Content-Type header. This fails (correctly) and the INVREQ is returned. If the forms data is sent in as a valid multipart form instead of a url encoded form then the command will fail with INVREQ and RESP2=14. This is because fields wrb_request_header_ccsid and wrb_characterset have not been set. If the forms data is supplied as a querystring on a GET request then the commands will fail with INVREQ and RESP2=13 because fields wrb_querystring_offset and wrb_querystring_length have not been set. In addition to the above, the forms processing code expects the body of the HTTP request to be in ASCII. There is no way to indicate to DFHWBBLI that the data has been supplied in ASCII.
Problem conclusion
A new constant WBBL_MODE_ASCII_DATA with value 'D' has been added to the DFHWBBLI copybooks. Setting WBBL_MODE to this value indicates that the parameter list is in offset mode and that the body of the HTTP request (referenced by WBBL_USER_DATA_OFFSET) is in ASCII. DFHWBBLI has been altered to ensure that fields in the Web Request Block used by the forms processing code have been set to appropriate values. The CICS Transaction Server for z/OS Version 4 Release 1 Supplementary Data Areas manual (GC34-7015-02) will be updated as follows; In section 'WBBLC Web Business Logic Interface parameters', Replace the text describing the usage of wbbl_mode with ! A single character that indicates the addressing mode for ! "wbbl_indata" and "wbbl_outdata". It must be set to 'P' to ! indicate that these values are pointers, or to 'O' or 'D' to ! indicate that these values are offsets (from the start of the ! parameter list). 'D' also indicates that the user data is in ! ASCII (ISO-8859-1). Replace the text describing wbbl_indata_offset with ! If "wbbl_mode" is 'O' or 'D', this field is the offset (from ! the start of the parameter list) of the HTTP request data ! that is to be passed to the application. Replace the text describing wbbl_outdata_offset with ! If "wbbl_mode" is 'O' or 'D', this is the fullword in which ! DFHWBBLI will return the offset (from the start of the ! parameter list) of the response data from the application. ! This offset is not necessarily the same as ! "wbbl_indata_offset". Make the following changes to Table 801, Change the description of WBBL_MODE to be 'O'=offset,'P'=pointer,'D'=ascii data Change the description of WBBL_INDATA_OFFSET to be Offset of request (MODE=O or MODE=D) Change the description of WBBL_OUTDATA_OFFSET to be Offset of response (MODE=O or MODE=D) Add a new entry to Table 802 Len Type Value Name 1 CHARACTER D WBBL_MODE_ASCII_DATA The CICS Transaction Server for z/OS Version 4 Release 1 Internet Guide (SC34-7021-01) will be updated as follows; In section 'Offset mode and pointer mode' add the following to the bulleted list that follows figure 26 o Set wbbl_mode to "D" to indicate offset mode and that the body of the HTTP request (referenced by wbbl_user_data_offset) is in ASCII. This is required if the server program uses any of the FORMFIELD API commands. In 'Appendix G. Reference information for DFHWBBLI, CICS business logic interface' update the 'Parameters for the business logic interface, DFHWBBLI' section as follows; Change the description of wbbl_indata_offset to be If wbbl_mode is "O" or "D", this field is the offset (from the start of the parameter list) of the HTTP request data to be passed to the application. Change the description of wbbl_outdata_offset to be If wbbl_mode is "O" or "D", this is the fullword in which DFHWBBLI returns the offset (from the start of the parameter list) of the response data from the application. This address in not necessarily the same as wbbl_indata_offset.
Temporary fix
FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PM29247
Reported component name
CICS TS Z/OS V4
Reported component ID
5655S9700
Reported release
600
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-12-20
Closed date
2011-01-19
Last modified date
2011-02-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK64059 UK64058 UK64060 UK64061
Modules/Macros
DESWBAP DESWBBLI DESWBDM DESWBRQ DESWBRQF DESWBSR DESWBXM DFHWBAP DFHWBAPF DFHWBBLC DFHWBBLD DFHWBBLH DFHWBBLI DFHWBBLL DFHWBBLO DFHWBDM DFHWBRQS DFHWBSR DFHWBXM
SC34702101 | GC34701502 |
Fix information
Fixed component name
CICS TS Z/OS V4
Fixed component ID
5655S9700
Applicable component levels
R600 PSY UK64058
UP11/01/27 P F101
R601 PSY UK64059
UP11/01/27 P F101
R602 PSY UK64060
UP11/01/27 P F101
R603 PSY UK64061
UP11/01/27 P F101
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":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"4.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"4.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
01 February 2011