IBM Support

IT40418: Agent incorrectly deletes all of the messages from a source queue at the end of a message-to-file transfer.

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

  • An IBM MQ Managed File Transfer agent is acting as the source
    agent for a message-to-file transfer, where the source item for
    the transfer is a complete message group. The source queue
    contains:
    
    - The message group that needs to be transferred.
    - And a number of other message groups and/or individual
    messages that are not included in the managed transfer.
    
    The managed transfer completes successfully. However, after it
    has finished, all of the messages on the source queue have been
    deleted, not just the messages that were part of the message
    group which was transferred.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of:
    
    - IBM MQ 9.1.0.9 LTS (and later) Managed File Transfer.
    - IBM MQ 9.2.0.3 LTS (and later) Managed File Transfer.
    - IBM MQ 9.2.3 CD (and later) Managed File Transfer.
    
    who have agents which perform message-to-file transfers, where
    the source item for the transfers is a message group.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    As part of APAR IT35701
    (https://www.ibm.com/support/pages/apar/IT35701), IBM MQ Managed
    File Transfer agents were modified to perform the following
    steps in a loop when deleting a message group from a source
    queue at the end of a successful message-to-file transfer:
    
    - Create an MQ message object.
    - Set the GroupId field in the MQ message's MQMD to be the group
    identifier of the message group that needs to be deleted.
    - Create a GetMessageOptions object.
    - Set the MatchOption MQMO_MATCH_GROUP_ID on the
    GetMessageOptions object.
    - Issue an MQGET API call, passing in the MQ message object and
    the GetMessageOptions structure.
    - If the MQGET API call returned a message then:
        - Go to the top of the loop.
    - Else if the MQGET API call completed with reason code 2079
    (MQRC_TRUNCATED_MSG_ACCEPTED) then:
        - Go to the top of the loop.
    - Else if the MQGET API call completed with reason code 2033
    (MQRC_NO_MSG_AVAILABLE) then:
        - Exit the loop.
    - End if
    
    However, there were a few issues with this logic:
    
    - Firstly, the MQ message object passed to the MQGET API call
    contained a version 1 MQMD structure. In this version of the
    structure, the GroupId field was ignored.
    - The GetMessageOptions that were created and passed to the
    MQGET API call was a version 1 structure. This version of the
    structure did not support the use of MatchOptions.
    
    As a result, the MQGET API calls issued by the agent returned
    the next message on the queue, instead of just the next message
    in the message group that was being deleted. This meant that,
    rather than just deleting the message group that was
    successfully transferred, the source agent incorrectly deleted
    all of the messages on the source queue.
    

Problem conclusion

  • To resolve this issue, IBM MQ Managed File Transfer agents have
    been updated to use:
    
    - An MQ message object containing a version 2 MQMD structure.
    - And a version 2 GetMessageOptions structure.
    
    when issuing MQGET API calls to remove a message group from a
    source queue at the end of a successful message-to-file
    transfer. This ensures that the agent only deletes the messages
    in the message group that was successfully transferred -
    messages which are not part of that message group will be left
    on the source queue.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.1 LTS   9.1.0.12
    v9.2 LTS   9.2.0.6
    
    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

    IT40418

  • Reported component name

    IBM MQ BASE MP

  • Reported component ID

    5724H7271

  • Reported release

    910

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-03-28

  • Closed date

    2022-04-21

  • Last modified date

    2022-04-21

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

Document Information

Modified date:
22 April 2022