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