A fix is available
APAR status
Closed as program error.
Error description
A WebSphere MQ File Transfer Edition queue resource monitor can be configured to match on "complete groups" (which includes individual messages not in a group), and use the ${GROUPID} variable substitution for the "groupId" <queue> element attribute to identify each message group by the group identifier in the MQMD. When triggering on a single message not in a group, the ${GROUPID} variable substitution value corresponds to the message identifier in the MQMD. A queue resource monitor can also be defined with a batch size greater than one such that it includes a number trigger matches within a single managed task, up to value defined by the batch size. When the queue resource monitor triggers on a number of individual messages that are not a member of a message group, and all of the triggers are batched into a single managed transfer task execution, only the first message in the batch was transferred successfully. The remainder of the transfer items were marked as "Successful" however the transfer resulted in an empty file for each of the other transfer items and the messages remained on the queue monitored by the queue resource monitor. APAR IT05666: http://www-01.ibm.com/support/docview.wss?uid=swg1IT05666 attempted to address this problem by enforcing a batch size of one on message-to-file managed transfers invoked via a queue resource monitor. This regressed functionality where batching would previously have worked if all files were in a message group, or when the groupId="${GROUPID}" <queue> element attribute was not specified (such that the transfer would consume the next available message on the input queue). This APAR (IT12173) removes the restriction introduced by APAR IT05666 and fixes message-to-file managed transfer batching for individual messages that are not members of a complete message group.
Local fix
Problem summary
**************************************************************** USERS AFFECTED: This issue affects all users of WebSphere MQ File Transfer Edition and WebSphere MQ Managed File Transfer who: - use a queue resource monitor to monitor a queue for messages, - use the "completeGroups" trigger condition on the monitor, - have configured a batch size greater than 1, - put messages to the monitored queue that are not a member of a WebSphere MQ message group. Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: When using the groupId attribute on a <queue> element, that is the source in a transfer template XML definition, which uses the variable substitution option "${GROUPID}" as the value, the value substituted would be the message identifier of the message triggering the queue resource monitor if that message was not a member of a WebSphere MQ message group. The managed transfer identifier associated with a managed task invoked via a queue resource monitor is set to the identifier of the first message triggering the queue resource monitor for that poll. When the value of the groupId attribute matched the transfer identifier, a WebSphere MQ File Transfer Edition or WebSphere MQ Managed File Transfer agent processing the transfer would attempt to get this message by matching this value to the message identifier field in an MQMD. If the value in the groupId attribute did not match the transfer identifier, the agent would attempt to consume messages by matching on the MQMD group identifier field. The product code expected a direct link between the message identifier of the message being processed and the identifier of the transfer in the case where single messages, which were not part of an MQ message group, were being processed. If multiple messages were processed in a single batch (which forms a single transfer and hence a single transfer identifier), then only the first message would satisfy this assumption. Therefore, when multiple individual messages (which were not members of a message group) were batched into a single managed transfer task, the message selection criteria of using the message identifier, was only correct for the first message in the managed transfer. The other messages that triggered the queue resource monitor, which correspond to separate transfer items, were not consumed from the queue because the message selection criteria was incorrect. As a result, the attempt to match on the group identifier as opposed to the message identifier caused the queue manager to return the WebSphere MQ reason code 2033 (MQRC_NO_MSG_AVAILABLE) to the MQGET call and not the target message triggering the queue resource monitor.
Problem conclusion
This APAR introduces a new, optional, attribute to the <queue> element, with name: messageInGroup that accepts a boolean value. When a queue resource monitor has been configured to trigger on complete message groups (which includes individual messages not in a WebSphere MQ message group) such that the useGroups <queue> attribute is set to the value "true" in the transfer template XML definition, and the groupId attribute has been specified with the variable substitution value "${GROUPID}", if an individual (non-grouped) message is detected, the agent will insert the new messageInGroup attribute with the value "false" into the managed transfer request submitted to the agent. As an example, a <queue> source item element within a managed transfer template XML definition that looks as follows: <queue groupId="${GROUPID}" useGroups="true">{$QueueName}@MYQMGR</queue> would be transformed into a request message submitted to the agent similar to: <queue groupId="414d51204d465437355f514d4752202027613f5620091602" messageInGroup="false" useGroups="true">MYQUEUE@MYQMGR</queue> This will instruct the agent to use the value: 414d51204d465437355f514d4752202027613f5620091602 to match on the MQMD's message identifier field when processing the transfer and not the group identifier. There are no configuration changes that are required by the user to fix message-to-file batching functionality. It is not expected that a user will specify the "messageInGroup" <queue> element attribute. Doing so, alongside setting the "useGroups" attribute to the value "true", will cause the agent to always match on the MQMD's message identifier field, which might result in adverse managed transfer behaviour. Therefore the "messageInGroup" attribute should not be included in a transfer template XML definition that is used by a queue resource monitor. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v7.0 7.0.4.6 v7.5 7.5.0.6 v8.0 8.0.0.5 The latest available FTE maintenance can be obtained from 'Fix List for WebSphere MQ File Transfer Edition 7.0' http://www-01.ibm.com/support/docview.wss?uid=swg27015313 The latest available MQ 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
IT12173
Reported component name
WMQ MFT
Reported component ID
5724H7242
Reported release
750
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-11-09
Closed date
2015-11-30
Last modified date
2015-12-04
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
WMQ MFT
Fixed component ID
5724H7242
Applicable component levels
R750 PSY
UP
[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFKSJ","label":"WebSphere MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5"}]
Document Information
Modified date:
26 September 2021