IBM Support

PH43015: MQ: MQRC_TRUNCATED_MSG_ACCEPTED (2079) RETURNED RATHER THAN MQRC_DBCS_ERROR (2150) FOR BAD DATA

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A misleading reason code made it difficult to determine that an
    application message had a mismatch between the data and the
    MQMD.CodedCharSetID.
    
    When the application read this message with
    MQGMO_ACCEPT_TRUNCATED_MSG, IBM MQ returned
    MQRC_TRUNCATED_MSG_ACCEPTED (MQRC 2079 - the message length was
    too large to fit into the supplied buffer). This was despite
    the fact that the message length was 600 bytes and buffer was
    90,000 bytes. When the application read this message without
    MQRC_TRUNCATED_MSG_ACCEPTED, IBM MQ returned the correct
    MQRC_DBCS_ERROR (MQRC 2150 - error in conversion).
    
    The root cause of the conversion failure was that the MQMD
    indicated the message data was UTF-8 (CCSID 1208) when it was
    in fact EBCDIC character data. UTF-8 characters are multiple
    bytes, so as the conversion progresses through the message,
    some of the data will be converted from multiple bytes into a
    single byte.
    
    The problem occurred when the conversion code reached the end
    of the data. The end of the message data was arranged such that
    the message looked like it ended with a multiple byte character
    that was truncated. MQ's low level conversion code returned
    CSQA_DBCS_ERROR to indicate that an invalid multiple byte
    character was encountered. This gets mapped to either
    MQRC_DBCS_ERROR or MQRC_TRUNCATED_MSG_ACCEPTED depending on
    whether MQGMO_ACCEPT_TRUNCATED_MSG was specified on the MQGET.
    
    MQRC_DBCS_ERROR is an accurate return code for this error,
    because the conversion code was unable to resolve a multiple
    byte character. MQRC_TRUNCATED_MSG_ACCEPTED suggests that the
    message had to be truncated to fit into the output buffer. All
    of the documentation for this return code says that the
    resolution here is to increase the output buffer size, which
    will not make a difference in this instance.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of IBM MQ for z/OS Version 9       *
    *                 Release 1 Modification 0, Release 2          *
    *                 Modification 0 and Release 3 Modification 0. *
    ****************************************************************
    * PROBLEM DESCRIPTION: When doing an MQGET with a mismatch     *
    *                      between the character data and the      *
    *                      associated CodedCharSetId, the return   *
    *                      code MQRC_TRUNCATED_MSG_ACCEPTED        *
    *                      can be incorrectly returned.            *
    ****************************************************************
    If the MQGMO_ACCEPT_TRUNCATED_MSG MQGMO option field is
    set when a double-byte character set conversion error occurs,
    the reason code CSQA_DBCS_ERROR resolves to
    MQRC_TRUNCATED_MSG_ACCEPTED. This leads the user to the
    incorrect problem resolution in the IBM documentation.
    

Problem conclusion

  • The code has been changed to resolve CSQA_DBCS_ERROR to
    MQRC_DBCS_ERROR when a double-byte character set
    conversion error has occurred and the
    MQGMO_ACCEPT_TRUNCATED_MSG MQGMO option field is set.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH43015

  • Reported component name

    IBM MQ Z/OS V9

  • Reported component ID

    5655MQ900

  • Reported release

    100

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-12-23

  • Closed date

    2023-01-16

  • Last modified date

    2023-03-01

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

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

    UI90085 UI90086 UI90087

Modules/Macros

  • CMQXCVCA CSQAADM6 CSQACIC6 CSQADED6 CSQAIMS6 CSQAIMSV CSQAIVS6
    CSQAMDE6 CSQARFH6 CSQARMH6 CSQASAP6 CSQASTR  CSQASTR6 CSQATRG6
    CSQAWLM6
    

Fix information

  • Fixed component name

    IBM MQ Z/OS V9

  • Fixed component ID

    5655MQ900

Applicable component levels

  • R100 PSY UI90087

       UP23/02/04 P F302

  • R200 PSY UI90086

       UP23/02/04 P F302

  • R300 PSY UI90085

       UP23/02/04 P F302

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":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"100","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
01 March 2023