IBM Support

IT33668: MQCTL does not function as expected when issued using MQOP_SUSPEND option

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 MQOP_SUSPEND option on the MQCTL API call pauses the
    consumption  of messages.
    
    The existing behavior is that the application connection
    consumes an extra message after being suspended, regardless of
    whether read-ahead is enabled.
    
    If read-ahead is not enabled for the connection, no messages
    should be consumed after the call is issued.
    

Local fix

  • It is possible to work around the problem on the client by
    individually suspending each callback using MQCB(SUSPEND) from
    inside the callback rather than doing a less granular
    MQCTL(SUSPEND) for the connection.
    
    Another possible client-side alternative would be to follow the
    advice for MQCTL(SUSPEND) and have the application close the
    queue if it is not expecting to receive further messages for a
    while:
    
    "MQOP_SUSPEND
    Pause the consuming of messages. This operation releases the
    connection handle.
    This does not have any effect on the reading ahead of messages
    for the application. If you intend to stop consuming messages
    for a long time, consider closing the queue and reopening it
    when consumption continues"
    
    A further workaround is to call MQCTL(STOP) rather than
    MQCTL(SUSPEND).
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of the IBM MQ asynchronous consume functionality that use
    MQCTL(SUSPEND) may be affected by this problem.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    If a client application thread issues MQCTL(SUSPEND) then
    messages may continue to be delivered to the application.  If
    the application does not call MQCTL(RESUME) then these messages
    may be lost, even if they are persistent messages.
    

Problem conclusion

  • The IBM MQ code has been modified so that MQCTL(SUSPEND) will
    prevent further messages from being delivered to applications
    until MQCTL(RESUME) is called.
    
    This change in behaviour only applies if none of the queue
    handles being used by consumers under MQCTL control are using
    read-ahead.  If some of your consumers use read-ahead then you
    are advised to use one of the workarounds documented in this
    APAR.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.1 LTS   9.1.0.8
    v9.2 LTS   9.2.0.2
    v9.x CD    9.2.2
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT33668

  • Reported component name

    IBM MQ BASE MP

  • Reported component ID

    5724H7271

  • Reported release

    910

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-07-23

  • Closed date

    2021-01-22

  • Last modified date

    2021-01-22

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

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

Fix information

  • Fixed component name

    IBM MQ BASE MP

  • Fixed component ID

    5724H7271

Applicable component levels

[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"910"}]

Document Information

Modified date:
23 January 2021