APAR status
Closed as duplicate of another APAR.
Error description
An IBM MQ Managed File Transfer V9.1.0.0 agent is acting as the source agent for managed transfers. After a managed transfer comes out of recovery and restarts, the agent abends and generates an ABEND file containing information similar to the information shown below: Filename: /SYSTEM/var/mqmfte/mqft/logs/MFT/agents/AGENT1/logs/ffdc/ABEND.F TE.20190409111213969.7128783014550594708.log Level: MQMFT 9.1.0.0 V910-GA910-L180705 Time: 09/04/2019 11:12:13:969 GMT Thread: 37 (ReplyProcessor) Class: com.ibm.wmqfte.thread.FTEThread Instance: f75cd29e Method: uncaughtException Probe: ABEND_001 Cause: java.lang.NullPointerException java.lang.NullPointerException at com.ibm.wmqfte.transfer.frame.impl.TransferFrameSenderImpl.updat e(TransferFrameSenderImpl.java:861) at com.ibm.wmqfte.transfer.impl.TransferSenderRunnable.processAckno wledgement(TransferSenderRunnable.java:1406) at com.ibm.wmqfte.transfer.impl.TransferSenderImpl.processAcknowled gement(TransferSenderImpl.java:172) at com.ibm.wmqfte.statestore.impl.FTEStateStoreImpl.notifyAcknowled gement(FTEStateStoreImpl.java:803) at com.ibm.wmqfte.transfer.impl.ReplyProcessorRunnable.run(ReplyPro cessorRunnable.java:258) at java.lang.Thread.run(Thread.java:812) at com.ibm.wmqfte.thread.FTEThread.run(FTEThread.java:70)
Local fix
N/A
Problem summary
This issue affects users of IBM MQ Managed File Transfer. When performing a managed transfer, a source agent maintains a list of: - The source items (files or messages) for the managed transfer. - And the file channels associated with each source item. The list is initialized when a managed transfer starts, and the source items added to it. However, the file channels associated with the source items are only added to the list when the source agent starts processing that particular item. The following sequence of events led up to the issue reported in this APAR: - The source agent started processing a managed transfer containing multiple transfer items. - The source agent opened a source file for the first transfer item (for example, "source-file-1"), read file data from it and sent it to the destination agent. At this point, the source agent's internal list for the managed transfer looked like this: Items List: Item 1: source-file-1], Channel channel1] Item 2: source-file-2], Channel null] Item 3: source-file-3], Channel null] ... - After waiting 5 minutes, the source agent hadn't had an acknowledgement from the destination agent indicating that it had received the file data, and so it put the managed transfer into recovery. As part of this processing, the channel to "source-file-1" was closed. - Some time later, the source agent received a internal message from the destination agent indicating that it was OK to resume the managed transfer. This caused the source agent to bring the managed transfer out of recovery, and build a new internal list of transfer items and channels, which looked like this: Items List: Item 1: source-file-1], Channel null] Item 2: source-file-2], Channel null] Item 3: source-file-3], Channel null] ... - Shortly afterwards, the source agent received an internal Acknowledgement message from the destination agent, indicating that it had received the file data that was sent before the managed transfer went into recovery. This message also indicated that the first transfer item failed due to an issue writing the destination file. As a result, the source agent got the channel for this item from the its internal list, and then tried to use it to get the name of the source file to include in the supplementary message: "BFGTR0012E: The transfer of <source_file> has failed because of a problem at the destination." for the managed transfer. However, there wasn't a channel for this transfer item, as the source file had not been opened since the managed transfer restarted, and so the attempt to get the source file name from it failed with a NullPointerException - As the NullPointerException was unexpected, the agent generated an FDC containing the following information: Thread: <number> (ReplyProcessor) Class: com.ibm.wmqfte.thread.FTEThread Method: uncaughtException Probe: ABEND_001 Cause: java.lang.NullPointerException java.lang.NullPointerException at com.ibm.wmqfte.transfer.frame.impl.TransferFrameSenderImpl. update() at com.ibm.wmqfte.transfer.impl.TransferSenderRunnable.process Acknowledgement() at com.ibm.wmqfte.transfer.impl.TransferSenderImpl.processAckn owledgement() at com.ibm.wmqfte.statestore.impl.FTEStateStoreImpl.notifyAckn owledgement() at com.ibm.wmqfte.transfer.impl.ReplyProcessorRunnable.run() at java.lang.Thread.run(Thread.java:812) at com.ibm.wmqfte.thread.FTEThread.run(FTEThread.java:70) and shut itself down.
Problem conclusion
To resolve this issue, the agent has been modified to check if there is a channel associated with a transfer item, before trying to use that channel to get the source file name to include in the supplementary message: "BFGTR0012E: The transfer of <source_file> has failed because of a problem at the destination." for a failed managed transfer. If the item does not have an associated channel, then the agent will use a different mechanism to get the source file name. In the event that the agent is still unable to determine the source file name, the following supplementary message will be logged for the transfer item: "BFGTR0083E: The transfer has failed because of a problem at the destination." The fix is included in fix pack 9.1.0.6, APAR PH26933, and fix pack 9.0.0.10, APAR PH25070.
Temporary fix
Comments
APAR Information
APAR number
PH19731
Reported component name
IBM MQ MFT Z/OS
Reported component ID
5655MF900
Reported release
910
Status
CLOSED DUA
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-11-27
Closed date
2020-08-24
Last modified date
2021-12-23
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 MFT Z/OS
Fixed component ID
5655MF900
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:
24 December 2021