IBM Support

PH56148: CSQX548E MESSAGES SENT TO LOCAL DEAD-LETTER QUEUE, CHANNEL XXX REASON=271 (????) SENDING MESSAGES THROUGH A SHARED CHANNEL

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • QMGRs were configured with different QMCCSIDs. In this case,
    QMGR1 has been explicitly configured with QMCCSID=37 in the
    ZPARM, however QMGR2 shows QMCCSID=0 (which will default to
    500).
    
    The error is occurring during the MQGET from the transmission
    queue - as the message contains properties, CSQMHDRS is called
    to convert this into an RFH2 header, and should insert this
    between the XQH and the message body. However although the
    MQGET is occurring on QMGR1, the MQPUT of the message occurred
    on the other queue manager QMGR2. Normally this wouldn't cause
    a problem, but in this particular case the queue manager
    CCSID's differ. This causes the code for detecting a valid XQH
    to fail, due to XQH being in a different CCSID, leading to the
    RFH2 being added ahead of the XQH.
    

Local fix

  • Configure both QMGRs with the same QMCCSID.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of IBM MQ for z/OS Version 9       *
    *                 Release 3 Modification 0 and Release 4       *
    *                 Modification 0.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: When MQGET attempts to get a message    *
    *                      with user properties from a shared      *
    *                      transmission queue for sending it       *
    *                      across a channel, it may fail if the    *
    *                      message was put to the queue by a queue *
    *                      manager configured with a different     *
    *                      CCSID than the one processing the       *
    *                      message. The message will then be sent  *
    *                      to a dead letter queue with reason 271, *
    *                      which is MQFB_XMIT_Q_MSG_ERROR,         *
    *                      indicating a lack of a valid            *
    *                      transmission queue header.              *
    ****************************************************************
    As part of the MQGET process, CSQMHDRS is called to convert the
    user properties into an RFH2 header inserted between the header
    chain and the message body. To do so, checks are performed to
    establish the headers present in the header chain. Because the
    CCSID of the transmission header and the queue manager
    performing the MQGET do not match, the header is not detected,
    and the RFH2 header is erroneously inserted ahead of the XQH
    which causes the message to be sent to a dead letter queue.
    

Problem conclusion

  • The code checking for transmission queue headers in CSQMHDRS has
    been changed to account for header with a CCSID value different
    to the native CCSID value of the processing queue manager if the
    queue where the message was put is a shared queue. As a result
    such a header will be correctly identified and the RFH2 will be
    inserted into the correct position.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH56148

  • Reported component name

    IBM MQ Z/OS V9

  • Reported component ID

    5655MQ900

  • Reported release

    400

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-08-01

  • Closed date

    2024-10-17

  • Last modified date

    2024-10-18

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

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

    UI97269 UI98330

Modules/Macros

  • CSQMHDRS
    

Fix information

  • Fixed component name

    IBM MQ Z/OS V9

  • Fixed component ID

    5655MQ900

Applicable component levels

  • R300 PSY UI97269

       UP24/06/27 P F406

  • R400 PSY UI98330

       UP24/09/25 P F409

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":"BU048","label":"IBM Software"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"400","Line of Business":{"code":"LOB67","label":"IT Automation \u0026 App Modernization"}}]

Document Information

Modified date:
18 October 2024