IBM Support

PI43898: DFHSO0001 ABEND (CODE 0C4/AKEX) OFFSET X'04B8' IN DFHSOS07 HTTP REQUEST HAS ACCEPT-CHARSET LIST GREATER THAN 4K

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • You are running CICS Transaction Server 5.1 and receive
    the following errors:
    DFHSO0001 An abend (code 0C4/AKEX) has occurred at
              offset X'04B8' in module DFHSOS07.
    DFHSO0002 A severe error (code X'029F')as occurred
              in module DFHSOCK.
    The application is receiving a  web request when the program
    check occurs.  The failing instruction is  MVCL R14,R0 due to
    R14 being close to a MEG boundary, that is in key 0.
    The code is attempting to move the request into
    a work buffer.
    Here are the last modules in the stack for the task:
    Module
    DFHWBCL
    READ_RESPONSE
    READ_BLOCK_RAW
    DFHSOCK
    RECEIVE_SOCK
    TCPIP_RECEIVE
    DFHSOS07
    .
    The problem is due to the fact that the client has
    sent in a request with a very large
    Accept-Charset list - over 4K in length.
    DFHWBCL handles this situation as an exception and should
    return wbcl_exception/wbcl_http_error.  However, after the
    peek has been abandoned a real receive gets issued anyway.
    This always for the peeked header length plus 2 (for the
    final CRLF which had not been included in the length so far).
    This is what causes the length to be 2 bytes more than will
    fit into the buffer-causing the program check .
    Additional Symptom(s) Search Keyword(s): KIXREVEPH
    
    DFHTS0001 An abend (code 0C4/AKEA) has occurred at
    offset X'3EBA' in module DFHTSRM.
    DFHRM0002 A severe error (code X'020B') has occurred in
    module DFHRMUO.
    The abend0c4 in DFHTSRM occurs during COMMIT processing
    in routine TSRM_DELETE_QAB.
    This problem is caused by the fact that DFHWBCL does not
    handle HTTP responses with more than 4K of headers.
    When it gets to the end of its 4K work buffer without
    finding the double CRLF a real sockets receive
    is issued for the remaining buffer length plus two.
    The assumption is that the earlier peeking of the
    header found the last CRLF but points past it so the length
    needs to be two larger leading to the overlay.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Message DFHSO0001 Abend (CODE 0C4/AKEX) *
    *                      offset x'04B8' in DFHSOS07 is issued    *
    *                      when HTTP response header has           *
    *                      ACCEPT-CHARSET list greater than 4k.    *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    CICS web client sends WEB CONVERSE command to server and gets
    an HTTP response with header length larger than 4k. DFHWBCL is
    invoked to peek the header first before actual read to make
    sure that all the HTTP headers have been received.
    The buffer used to peek the header has a size of 4k. So the
    peek of 4k header complete before the end of header has been
    found(a double CRLF).
    Exception is set with reason HTTP_ERROR due to syntax error.
    The code does not immediately return and instead it continues
    to perform an actual read for the socket data with length
    4k + 2 to include double CRLF.
    Then it causes 0C4 since the extra 2 bytes address are in
    unaddressable storage.
    
    Additional Keywords: abend0C4 S0C4 abendS0C4 abendAKEX
    

Problem conclusion

  • DFHWBCL has been changed to treat the response header length >
    4k as invalid and return exception with reason
    wbcl_header_too_long.
    
    The CICS Transaction Server for z/OS Version 5 Release 1
    Application Programming Reference, SC34-2845-02, will be updated
    for the commands 'WEB CONVERSE' and 'WEB RECEIVE (client)' to
    add a new RESP2 value of 157 to the list of values for the
    '16 INVREQ' condition as follows:
        157  The http headers in the response are longer than 4k and
             CICS is unable to process this http response.
             The session is unusable and a WEB CLOSE command is
             required.
    
    The CICS Transaction Server for z/OS Version 5 Release 2
    Application Programming Reference, SC34-7267-00, will be updated
    with the same changes.
    

Temporary fix

  • FIX AVAILABLE BY PTF ONLY
    

Comments

APAR Information

  • APAR number

    PI43898

  • Reported component name

    CICS TS Z/OS V5

  • Reported component ID

    5655Y0400

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-06-26

  • Closed date

    2015-09-13

  • Last modified date

    2015-10-02

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

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

    UI31193 UI31194 UI31195 UI31196

Modules/Macros

  • DFHEIWB  DFHISCO  DFHISEM  DFHISPH  DFHISRR  DFHISSR  DFHPIAD
    DFHPIAT  DFHPIA1  DFHPITH  DFHPITS  DFHSJJS  DFHWBCL  DFHWBCLI
    DFHWBCLT DFHWBDUF DFHWBSV  DFHWBXM  DFJ@H360
    

Publications Referenced
SC34284502SC34726700   

Fix information

  • Fixed component name

    CICS TS Z/OS V5

  • Fixed component ID

    5655Y0400

Applicable component levels

  • R80D PSY UI31194

       UP15/09/24 P F509

  • R800 PSY UI31193

       UP15/09/24 P F509

  • R90D PSY UI31196

       UP15/09/24 P F509

  • R900 PSY UI31195

       UP15/09/24 P F509

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":"5.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":"5.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 October 2015