IBM Support

IT30243: Managed File Transfer source agent generates FDC containing message "Failed to queue a delete open file request for file"

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

  • Intermittantly, an IBM MQ V9.0.0.2 Managed File Transfer source
    agent for a managed transfer generates a FDC containing the
    following information:
    
    Thread:  <number>(SenderEnd<managed transfer identifier>)
    Class:  com.ibm.wmqfte.transfer.frame.impl.TransferFrameIOWorker
    Method:  deleteOpenFileRequest
    Probe:  FFDC_002
    Cause:  java.lang.Exception: Failed to queue a delete open
    file request for file: <source file name>
    java.lang.Exception: Failed to queue a delete open file request
    for file: <source file name>
     at
    com.ibm.wmqfte.transfer.frame.impl.TransferFrameIOWorker.deleteO
    penFileRequest(TransferFrameIOWorker.java:255)
     at
    com.ibm.wmqfte.transfer.frame.impl.TransferFrameSenderImpl.delet
    eOpenFile(TransferFrameSenderImpl.java:1788)
     at
    com.ibm.wmqfte.transfer.impl.TransferSenderRunnable.deleteFile(T
    ransferSenderRunnable.java:1503)
     at
    com.ibm.wmqfte.transfer.impl.TransferSenderImpl.deleteFile(Trans
    ferSenderImpl.java:319)
     at
    com.ibm.wmqfte.statestore.impl.FTEMutableSenderState.processSour
    ceDisposition(FTEMutableSenderState.java:1089)
     at
    com.ibm.wmqfte.statestore.impl.FTEMutableSenderState.addProgress
    Audit(FTEMutableSenderState.java:805)
     at
    com.ibm.wmqfte.statestore.impl.FTEStateStoreImpl.publishProgress
    Audit(FTEStateStoreImpl.java:1795)
     at
    com.ibm.wmqfte.statestore.impl.FTEStateStoreImpl.closeAudit(FTES
    tateStoreImpl.java:1634)
     at
    com.ibm.wmqfte.statestore.impl.FTESenderEndRunnable.run(FTESende
    rEndRunnable.java:145)
     at java.lang.Thread.run(Thread.java:785)
     at com.ibm.wmqfte.thread.FTEThread.run(FTEThread.java:70)
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of IBM MQ Managed File Transfer who
    have agent queue managers that are part of a queue manager
    cluster.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When a managed transfer takes place, a number of internal
    messages are sent between the source and destination agents.
    These messages include:
    
    - The messages that contain the file data, sent by the source
    agent.
    - Internal acknowledgement messages, sent by the destination
    agent indicating that the file data has been received and
    processed.
    - Progress messages, sent by the destination agent to indicate
    how much data has been processed.
    - A completion message, sent by the destination agent to inform
    the source agent that it has processed all of the file data.
    
    The destination agent will send the "Completion" message after
    the final "Progress" message has been sent for a managed
    transfer. Upon receiving the last "Progress" message, the source
    agent updates some internal audit information related to the
    managed transfer.  When the agent receives the "Completion"
    message, it will process the source disposition for the managed
    transfer before marking the managed transfer as "Completed".
    
    Now, the destination agent used an MQPUT1 API call when sending
    the "Progress" and "Completed" messages to the source agent.
    This meant that if:
    
    - The source agent queue manager and destination agent queue
    manager were part of a queue manager cluster.
    - And there were different routes between the queue managers
    through the cluster.
    
    then it was possible for the "Completed" message sent by the
    destination agent to take a different path through the cluster
    than the final "Progress" message. Depending on the paths that
    the messages took, the "Completed" message could be processed by
    the source agent before the "Progress" message. If this
    happened, then the following sequence of events occurred:
    
    - The source agent received the "Completed" message and was
    unable to process the source disposition for the managed
    transfer as there was some missing audit information.
    - The source agent then received the "Progress" message
    containing the audit information. This caused the source agent
    to try and process the source disposition for the managed
    transfer. However, this processing relied on some internal data
    structures that were only available when a "Completed" message
    was being handled. As a result, the agent generated an FDC
    containing the information shown below:
    
    ----------------------------------------------------------------
    ------
    Thread:  <number>(SenderEnd<managed transfer identifier>)
    Class:  com.ibm.wmqfte.transfer.frame.impl.TransferFrameIOWorker
    Method:  deleteOpenFileRequest
    Probe:  FFDC_002
    Cause: java.lang.Exception: Failed to queue a delete open file
    request for file: <source file name>
    java.lang.Exception: Failed to queue a delete open file request
    for file: <source file name>
     at
    com.ibm.wmqfte.transfer.frame.impl.TransferFrameIOWorker.deleteO
    penFileRequest()
     at
    com.ibm.wmqfte.transfer.frame.impl.TransferFrameSenderImpl.delet
    eOpenFile()
     at
    com.ibm.wmqfte.transfer.impl.TransferSenderRunnable.deleteFile()
     at com.ibm.wmqfte.transfer.impl.TransferSenderImpl.deleteFile()
     at
    com.ibm.wmqfte.statestore.impl.FTEMutableSenderState.processSour
    ceDisposition()
     at
    com.ibm.wmqfte.statestore.impl.FTEMutableSenderState.addProgress
    Audit()
     at
    com.ibm.wmqfte.statestore.impl.FTEStateStoreImpl.publishProgress
    Audit()
     at
    com.ibm.wmqfte.statestore.impl.FTEStateStoreImpl.closeAudit()
     at com.ibm.wmqfte.statestore.impl.FTESenderEndRunnable.run()
     at java.lang.Thread.run()
     at com.ibm.wmqfte.thread.FTEThread.run()
    ----------------------------------------------------------------
    ------
    
    and marked the managed transfer as "Failed".
    

Problem conclusion

  • To resolve this issue, IBM MQ Managed File Transfer destination
    agents have been updated to:
    
    - Open the source agent's command queue on the source agent
    queue manager using the MQOO_OUTPUT and MQOO_BIND_ON_OPEN
    options.
    - And then use this queue handle to send all "Progress" and
    "Completion" messages, via an MQPUT API call.
    
    This means that, if the source agent queue manager and
    destination agent queue managers are part of a queue manager
    cluster, then the "Progress" and "Completed" messages sent by
    the destination agent will take the same route through the
    cluster. This ensures that the "Progress" messages arrive before
    the "Completion" message, which means that the source agent will
    process them in that order and not generate an FDC.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.0 LTS   9.0.0.9
    v9.1 CD    9.1.5
    v9.1 LTS   9.1.0.5
    
    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

    IT30243

  • Reported component name

    IBM MQ BASE M/P

  • Reported component ID

    5724H7261

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-09-10

  • Closed date

    2019-11-29

  • Last modified date

    2019-11-29

  • 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 M/P

  • Fixed component ID

    5724H7261

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
29 November 2019