IBM Support

IT12173: TRANSFER BATCHING FROM QUEUE RESOURCE MONITORS LEAVE MESSAGES ON QUEUE AND WRITES EMPTY DESTINATION FILES

Subscribe

You can track all active APARs for this component.

 

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":"LOB36","label":"IBM Automation"},"Business Unit":{"code":"BU053","label":"Cloud \u0026 Data Platform"},"Product":{"code":"SSFKSJ","label":"WebSphere MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5"}]

Document Information

Modified date:
26 September 2021