A fix is available
APAR status
Closed as program error.
Error description
CICS application issues EXEC CICS WEB RECEIVE INTO MAXLENGTH. The response from the server has a body but there is no Content-Length header. The length of the body is determined by DFHWBCL reading the data off the socket until a socket closed response is received. If the Content-type is text/html then DFHWBCL getmain a 32K WBSETBUF buffer and wbo_response_body.m = 32K and wbo_response_body.n = 0. We would then proceed to read data off the socket using this 32K (WBSETBUF) buffer. However in our case, the Content-Type from the remote server was application/octet-stream. This is treated as non-text so the getmain of a 32K WBSETBUF is bypassed. This means that we end up in a state where response_body.m and response_body.n are both 0. This causes DFHWBCL to assume that we have filled the SET buffer. We enter routine handle_excess and get a new buffer, copy from a non-existent buffer into the new buffer and then freemain the non-existent buffer resulting in the FREEMAIN error.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICS users * **************************************************************** * PROBLEM DESCRIPTION: DFHSM0002 error code X'0315' in * * DFHSMGF occurs when a CICS application * * issues EXEC CICS WEB RECEIVE INTO * * NOTRUNCATE. * * * **************************************************************** * RECOMMENDATION: * **************************************************************** A CICS application issues EXEC CICS WEB RECEIVE INTO NOTRUNCATE to receive a response from the server. The response has a body and no Content-length header. The body length is bigger than the size of the INTO area which is specified by MAXLENGTH. DFHWBCL fails to getmain a WBXSBODY buffer for the initial read of the excess data but instead incorrectly assumes that it is processing an overflow of an existing WBXSBODY buffer. It therefore attempts to freemain the existing buffer but the pointer to this buffer in 0 so the freemain fails resulting in the reported msgDFHSM0002. This problem only affects binary data, or text which is in a single byte character set. Multiple byte character sets are processed differently and are not affected.
Problem conclusion
DFHWBCL has been changed so that DFHWBCL HANDLE_EXCESS gets a 32k buffer for WBXSBODY when NOTRUNCATE is specified and the body length is not known.
Temporary fix
FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PM31978
Reported component name
CICSTS V3 Z/OS
Reported component ID
5655M1500
Reported release
500
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-02-04
Closed date
2011-04-20
Last modified date
2011-05-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
PM34908 UK66930
Modules/Macros
DESWBCL DFHWBCL
Fix information
Fixed component name
CICSTS V3 Z/OS
Fixed component ID
5655M1500
Applicable component levels
R500 PSY UK66930
UP11/04/22 P F104
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":"3.2","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":"3.2","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
01 May 2011