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":"LOB45","label":"Automation"}}]
Document Information
Modified date:
29 November 2019