IBM Support

PH66092: MQ Z/OS: ABN= 0C4-00000004 LOC=CSQXBNTM.????????+00ED2 WITH THE PSW IN CSQXBNT1

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • The CHIN log has errors: DUMP TITLE=CSQ1,ABN=
    0C4-00000004,C=MQ900.930.CHIN,M=CSQXDISP,L
    OC=CSQXBNTM.????????+00ED2 CSQX112E +CSQ1 CSQXDISP Dispatcher
    process error, TCB=008B41D8 reason=0C4000-00000004. In the dump,
    the PSW for the ABEND0C4 is in module CSQXBNT1 at offset x'8D0'.
    The problem occurs when MQ attempts to use a reverse DNS lookup
    to establish the hostname associated with the IP address of a
    new channel connection, and the DNS server is returning a large
    number of matching hostnames. In the reported case, DNS returned
    35 hostnames. MQ has logic to handle long lists of hostnames by
    limiting the number which get copied into the channel's storage.
    However, there are errors in the logic that manages these lists:
    1) If tracing is active, an attempt to record the oversized list
    is made using a trace call with the wrong number of parameters.
    This results in residual data being treated as a length for the
    data to be traced. If the residual data is a valid length then
    the wrong data will be traced but processing will continue. If
    the residual data represents a bad length (e.g. a very large
    value that causes unallocated storage to be accessed), then the
    ABEND0C4 can occur. 2) If tracing is inactive or the trace
    succeeds, then the code truncates the buffer size for storing
    the hostnames, but it goes on to try to copy all the hostnames
    into the buffer. This results in data over-running the end of
    the allocated buffer and potentially overlaying storage
    allocated for other purposes.
    

Local fix

  • If possible, reduce the number of host names in DNS associated
    with a particular ip address. If that is not possible, the
    reverse lookup can be disabled with the MQ comomand: ALTER QMGR
    REVDNS(DISABLED) REVDNS(ENABLED) is required for matching
    against CHLAUTH rules that contain host names and to include the
    host name in error messages. If you use the hostname provided in
    channel connection error messages as an aid in problem
    diagnosis, use the DISABLED setting only as a temporary
    workaround.
    

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 a channel initiator attempts to    *
    *                      establish a channel connection, the job *
    *                      may abend with code 0C4-00000004. This  *
    *                      abend occurs in module CSQXBNTM during  *
    *                      reverse DNS lookup processing.          *
    ****************************************************************
    The failure occurs when the remote ip address of incoming
    channels resolved to a large number of hostname aliases. MQ
    processes these hostnames in two passes: first to calculate
    buffer size needed, then to allocate the buffer and copy the
    hostnames. Current limits to the entries is 32 or 2048 bytes.
    Errors in the logic start to appear once these limits are hit:
    * If trace is active, the incorrect parameter is passed into the
    trace routine causing an abend in the tracing code.
    * In the first pass, a check is present to prevent a buffer that
    is greater than the limit, however this logic is missing in the
    second pass and so all the aliases are processed and wrote
    beyond the allocated buffer, leading to an 0C4.
    * If channel events are enabled and a large number hostnames are
    present, the fixed buffer is not big enough to hold all
    hostnames leading to an FFST being issued.
    

Problem conclusion

  • This APAR corrects the logic in hostname processing to prevent
    both tracing and buffer overrun errors. The fix ensures that
    trace calls use valid parameters and that hostname copying
    respects buffer size limits. The buffer for channel events now
    dynamically reallocates storage to support an increased number
    of hostname entries in cases where an FFST would have been
    issued.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH66092

  • Reported component name

    IBM MQ Z/OS V9

  • Reported component ID

    5655MQ900

  • Reported release

    300

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-04-10

  • Closed date

    2026-05-07

  • Last modified date

    2026-05-07

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

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

    UO07728 UO07729

Modules/Macros

  • CMQXREVN CSQIRECP CSQMSTRT CSQXCRHN
    

Fix information

  • Fixed component name

    IBM MQ Z/OS V9

  • Fixed component ID

    5655MQ900

Applicable component levels

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"300","Line of Business":{"code":"LOB77","label":"Automation Platform"}}]

Document Information

Modified date:
07 May 2026